2012-03-02 32 views
6

我正在使用Flask的Web應用程序工作。其中一個視圖應該通過PUT請求接受上傳的文件,但是我只能通過$ curl -F [email protected] URL獲得POST請求才能正常工作。對於PUT請求,如$ curl --upload-file filenname URLrequest.files ImmutableMultiDict爲空。我是否在Flask中丟失了某些東西,或者使用了捲曲?PUT請求上傳文件在Flask中不工作

回答

6

與POST請求相比,PUT請求方式有所不同。通過PUT請求,可以使用request.datarequest.stream來訪問文件內容。第一個存儲收到的數據串,而request.stream的作用更像一個文件對象,使之更適合於二進制數據:

with open('uploaded_image.jpg', 'w') as f: 
    f.write(request.stream.read()) 
+0

是我的文件,結束了在request.data因爲瓶不能處理的MIME類型。 – Adrian 2012-03-02 13:22:48