【发布时间】:2020-10-15 09:51:29
【问题描述】:
我有一个简单的带有文件上传功能的烧瓶 API 来发送图像:
from flask import request
from flask import Flask
app = Flask(__name__)
@app.route('/', methods=['POST'])
def upload_file():
f = request.files['image']
print(f.content_type)
print(f.filename)
# do something with the file
# f.read()
return("Done")
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0', port=5000)
当我使用curl 的-F 选项发送图像时,我可以访问该文件:
curl -XPOST localhost:5000 -F "image=@img.jpg"
但是如何使用-d 选项将图像作为有效负载发送到 json 文件中?如果我使用base64 对图像进行编码,将字符串放入 json 文件并使用-d 选项发送,它找不到我的图像:KeyError: 'image'
我尝试了不同的内容类型:
curl -XPOST localhost:5000 -d @img.json --header "Content-Type: application/json"
curl -XPOST localhost:5000 -d @img.json --header "Content-Type: image/jpeg"
我的image.json 看起来像这样:
{"image":"/9j/4AAQSkZJRgABAQEAS..."}
(用完整的字符串代替...)
【问题讨论】:
标签: python api flask curl file-upload