2012-03-02 21 views
6

私はFlaskを使用しているWebアプリケーションで作業しています。ビューの1つはPUTリクエストを通じてアップロードされたファイルを受け入れることになっていますが、私は$ curl -F [email protected] URLでPOSTリクエストを正しく取得することができます。 $ curl --upload-file filenname URLなどのPUTリクエストの場合、request.files ImmutableMultiDictは空です。私はフラスコで何かを逃しているのでしょうか、あるいはカールを使っていますか?Flaskで動作していないファイルをアップロードするPUTリクエスト

答えて

6

PUTリクエストは、POSTリクエストとは異なる方法です。 PUTリクエストでは、request.dataまたはrequest.streamのいずれかを使用してファイルの内容にアクセスできます。複数のファイルオブジェクトのようなrequest.stream行為は、バイナリデータのためにそれをより適切なものにしながら、文字列などのデータを着信最初の1つの店舗は:フラスコはそのMIMEタイプを扱うことができないので、

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

はい、私のファイルはrequest.dataで終わりました。 – Adrian

関連する問題