PUT запрос на загрузку файла, не работающего во Flask - PullRequest
6 голосов
/ 02 марта 2012

Я работаю над веб-приложением, используя Flask.Предполагается, что одно из представлений принимает загруженные файлы с помощью запросов PUT, однако я могу получить только запросы POST с $ curl -F upload=@filename URL для правильной работы.С запросами PUT, такими как $ curl --upload-file filenname URL, request.files ImmutableMultiDict пуст.Я что-то упускаю во Flask или, может быть, с помощью curl?

1 Ответ

6 голосов
/ 02 марта 2012

PUT-запрос сильно отличается от POST-запроса. С помощью запроса PUT доступ к содержимому файла можно получить с помощью request.data или request.stream. Первый хранит входящие данные в виде строки, в то время как request.stream действует больше как объект файла, что делает его более подходящим для двоичных данных:

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