Pracuję nad aplikacją internetową za pomocą kolby. Jeden z widoków ma akceptować przesłane pliki za pomocą żądań PUT, jednak mogę uzyskać tylko żądania POST z $ curl -F [email protected] URL
, aby działały poprawnie. W przypadku żądań PUT, takich jak $ curl --upload-file filenname URL
, request.files
ImmutableMultiDict jest pusta. Czy brakuje mi czegoś w Flasku, a może przy użyciu curl?Żądanie PUT do przesłania pliku nie działającego w kolbie
6
A
Odpowiedz
6
Żądanie PUT różni się znacznie od żądania POST. Z żądaniem PUT dostęp do zawartości pliku można uzyskać za pomocą request.data
lub request.stream
. Pierwsze jeden przechowuje napływające dane jako ciąg znaków, a request.stream
działa bardziej jak obiekt pliku, dzięki czemu jest bardziej odpowiedni dla danych binarnych:
with open('uploaded_image.jpg', 'w') as f:
f.write(request.stream.read())
Tak mój plik skończyło się w request.data ponieważ kolba nie może obsługiwać swój typ MIME. – Adrian