ここでの問題はファイル要素の名前だと思います。そのはず docfile
. 。カールの例では、あなたはそれを渡しました docfile
しかし、Pythonスクリプトでは、そのまま残しました file
.
この行を変更します:
files = {'file': open('file.ext', 'rb')}
これに:
files = {'docfile': open('file.ext', 'rb')}
質問
Pythonクライアントを介してファイルをDjango Pythonサーバーにアップロードしようとしています。
私はこれを試しました -
import requests
url = 'http://wings.spectrumserver/sdm/lists'
files = {'file': open('file.ext', 'rb')}
r = requests.post(url, files=files)
しかし、どういうわけかそれは機能していません。 No error but no output/upload as well
ブラウザとコマンドラインによってファイルを正常にアップロードしています。
curl -i --form docfile=@localfilename http://wings.spectrumserver/sdm/lists
何をすべきか提案してください?
私はカールとパイソンについてあまり知りませんが、誰かがこのカールコマンドのレプリカである何かを提案することができるかもしれません pycurl
すでにCurlで動作しているためです。
質問の詳細については、こちらをご覧ください -
解決
ここでの問題はファイル要素の名前だと思います。そのはず docfile
. 。カールの例では、あなたはそれを渡しました docfile
しかし、Pythonスクリプトでは、そのまま残しました file
.
この行を変更します:
files = {'file': open('file.ext', 'rb')}
これに:
files = {'docfile': open('file.ext', 'rb')}
他のヒント
あなたのビューでリクエストを見ると、request.files ['file']でそれを見るかもしれません。ヘッダーファイルに悪い設定があったので問題がありました。