python - python Flask应用程序中使用json对象上传文件的POST方法

标签 python python-3.x flask multipartform-data flask-restful

我遇到了一个问题,我正在尝试构建单个 API,该 API 将与 json 对象一起上传文件。我需要这个 API 来创建 webhook。

使用多部分,我可以上传文件,并且在选项字段中我可以发送 json 对象。

在 Flask 应用程序中,当我尝试检索 json 对象时,它会将其转换为 blob 类型。我尝试将其转换为 base64,然后再次转换为字符串,但整个过程无法正常工作。

如果有人有好的解决方案,请告诉我,我可以将文件和 json 对象组合在一起,并通过 Flask python 应用程序获取它。

zz 是我的代码中尝试存储 json 对象的变量。 name 是我将 json 对象与文件一起传递的字段。

提前致谢。

我当前的代码

app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

@app.route('/upload/',methods = ['POST'])
def upload():
    customer_name='abc'
    if request.method == 'POST':

        zz=base64.b64encode(request.files['name'].read())
        try:
            file = request.files['file']
            if file:
                file.filename=customer_name+'_'+str(datetime.now())+'.'+file.filename.split('.')[-1]
                filename = secure_filename(file.filename)
                path=os.path.join(app.config['UPLOAD_FOLDER'], filename)
                file.save(path)

            return jsonify({
                'status':success,
                'junk_data':[],
                'message':error
                })
        except Exception as err:
            logger.error(str(datetime.now())+' '+str(err))
            return jsonify({
                'status':False,
                'junk_data':[],
                'message':str(err)
                })
if __name__ == '__main__':
    app.run(host='localhost',debug=True, use_reloader=True,port=5000)

最佳答案

经过大量研发,我得到了答案。

请求格式

//user any client-side

content-type:multipart/form-data
 file: file need to upload 
 data: {"name":"abc","new_val":1}

从请求对象获取的Python代码

data=json.loads(request.form.get('data'))
file = request.files['file']

关于python - python Flask应用程序中使用json对象上传文件的POST方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56766072/

相关文章:

python - 如何将日、月、年转换成日期格式?

python - Python 线程、Flask 和 Gunicorn 的问题

python - flask-restful - 当前请求的资源类

python - 在 Jupyter Notebook 中调试 Flask 服务器

python - Flask-restful,marshal_with + 嵌套数据

python - 不使用固定装置的 Django 1.10 种子数据库

python - 用于生成嵌套字段的 Elasticsearch Groovy 脚本语法

python - 使用包含数字的字符串进行索引时,二维 numpy 数组不会出错

python - 尝试在多线程中处理链接时出错

python-3.x - 使用 unicode 在 hdf5 中存储字符串数据集