我正在尝试使用声音进行处理,因此我需要将声音从android设备上传到API(Flask)。
我将MultiPart与改造调用一起成功发送,但在API端未检测到文件
改造
@POST("uploadfile")
@Multipart
Call<MLResponse> upload(@Part("file")RequestBody file);
请求主体
requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("title", "Square Logo")
.addFormDataPart("file", "aa.mp4",
RequestBody.create(MEDIA_TYPE_AUDIO, new File(path)))
.build();
API
@app.route('/uploadfile',methods=['GET','POST'])
def uploadfile():
# check if the post request has the file part
if 'file' not in request.files:
return jsonify( result = "No file")
try:
file = request.files['file']
return jsonify( result = str(file.filename)
except :
return jsonify( result = "Error")
结果是
No file
但是我已经使用
file.exists()
检查了文件,它返回true并能够播放它。
最佳答案
在您的API代码中,没有用于保存此文件的代码。检查此代码并添加必要的行。
@app.route('/uploadfile',methods=['GET','POST'])
def uploadfile():
if request.method == 'PUT':
f = request.files['file']
filePath = "./somedir/"+secure_filename(f.filename)
f.save(filePath)
return "success"
关于android - 使用Retrofit将音频文件上传到Flask API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56787914/