我正在使用Flask开发Web应用程序。其中一个视图应该通过PUT请求接受上传的文件,但是我只能通过$ curl -F upload=@filename URL
获得POST请求才能正常工作。对于诸如$ curl --upload-file filenname URL
之类的PUT请求,request.files
ImmutableMultiDict为空。我是否在烧瓶中丢失了某些东西,或者使用卷曲?
答案 0 :(得分:6)
与POST请求相比,PUT请求有所不同。通过PUT请求,可以使用request.data
或request.stream
访问文件内容。第一个将输入数据存储为字符串,而request.stream
更像是文件对象,使其更适合二进制数据:
with open('uploaded_image.jpg', 'w') as f:
f.write(request.stream.read())