我正在使用Flask开发Web应用程序。其中一种 View 应该通过PUT请求接受上载的文件,但是我只能通过$ curl -F upload=@filename URL
来获得POST请求才能正常工作。对于诸如$ curl --upload-file filenname URL
的PUT请求,request.files
ImmutableMultiDict为空。我是否在Flask中缺少某些东西,或者可能是使用curl丢失了?
最佳答案
与POST请求相比,PUT请求的方式有所不同。通过PUT请求,可以使用 request.data
或 request.stream
访问文件内容。第一个将输入的数据存储为字符串,而request.stream
的行为更像一个文件对象,使其更适合于二进制数据:
with open('uploaded_image.jpg', 'w') as f:
f.write(request.stream.read())
关于python - PUT请求上载在Flask中不起作用的文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9533462/