2012-03-02 22 views
6

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

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()) 
+0

Tak mój plik skończyło się w request.data ponieważ kolba nie może obsługiwać swój typ MIME. – Adrian