android - 使用Retrofit将音频文件上传到Flask API

标签 android audio flask retrofit

我正在尝试使用声音进行处理,因此我需要将声音从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/

相关文章:

python - 在 SQLAlchemy 的数组列中查找最频繁的值

python - 遍历表单并仅打印表单中包含数据的值

android - 丢失 fragment Activity

android - 适用于 Android 或 iOS 的视频聊天 SDK 可用吗?

javascript - 当一个音轨开始播放时,如何停止另一音轨? (只有文字链接)

C/C++ - 了解音频插值代码

c# - 在迷宫中的消息框上插入声音和图像

python - 如何从 jinja2 中的变量内部打印空格

java - 如果我们使用 signInAnonimously,是否可以重新连接用户?

Android 特定的 MIME 类型列表?