2012-03-02 36 views
6

Tôi đang làm việc trên một ứng dụng web bằng cách sử dụng Flask. Một trong các chế độ xem được cho là chấp nhận các tệp đã tải lên thông qua các yêu cầu PUT, tuy nhiên tôi chỉ có thể nhận được các yêu cầu POST với $ curl -F [email protected] URL để hoạt động bình thường. Với các yêu cầu PUT như $ curl --upload-file filenname URL, request.files ImmutableMultiDict trống. Tôi có thiếu một cái gì đó trong Flask hoặc có thể với việc sử dụng curl?Yêu cầu PUT để tải lên một tệp không hoạt động trong Flask

Trả lời

6

Yêu cầu PUT có cách khác so với yêu cầu POST. Với yêu cầu PUT, nội dung tập tin có thể được truy cập bằng cách sử dụng request.data hoặc request.stream. Một trong những cửa hàng đầu tiên incoming dữ liệu như chuỗi, trong khi request.stream hành vi giống như một đối tượng tập tin, làm cho nó phù hợp hơn cho dữ liệu nhị phân:

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

Có tập tin của tôi đã kết thúc trong request.data vì Flask không thể xử lý loại mime của nó. – Adrian

Các vấn đề liên quan