Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

PUT request to upload a file not working in Flask

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?

like image 622
Adrian Avatar asked Mar 02 '12 12:03

Adrian


1 Answers

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())
like image 159
plaes Avatar answered Oct 22 '22 16:10

plaes