我的API的一个端点使用multipart / form-data处理PUT请求。在上传音频文件时,会从表单数据中的客户端发送一些其他数据。我可以使用以下代码接收文件,但无法获取表单数据。
@api.route('/upload')
class AudioUpload(Resource):
def put(self):
now = datetime.now()
filename = now.strftime("%Y%m%d_%H%M%S") + ".mp3"
cwd = os.getcwd()
filepath = os.path.join(cwd, filename)
name = request.form['name']
print('name: ', name, file=sys.stdout)
with open(filepath, 'wb') as f:
f.write(request.stream.read())
return filepath
我测试过的curl命令是:
curl -X PUT \
http://localhost:5000/api/upload \
-H 'content-type: multipart/form-data \
-F file=@Audio-3791_244-Feb_04_2018-13_30_04.wav \
-F name=xyz
我收到400错误The browser (or proxy) sent a request that this server could not understand.
在PUT请求中获取表单数据的正确方法是什么?
修改
刚用帖子试过相同的代码。它不能用于获取具有相同错误的表单数据。