I am working on a web application using Flask. One of the views is supposed to accept uploaded files through PUT requests, however I only can get POST requests with $ curl -F upload=@filename URL
to work properly. With PUT requests such as $ curl --upload-file filenname URL
the request.files
ImmutableMultiDict is empty. Am I missing something in Flask or maybe with using curl?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
PUT request is way different compared to POST request. With PUT request the file contents can be accessed using either request.data
or request.stream
. The first one stores incoming data as string, while request.stream
acts more like a file object, making it more suitable for binary data:
with open('uploaded_image.jpg', 'w') as f:
f.write(request.stream.read())