1

以下は、特定のサーバーにファイルをアップロードするためのPythonスニペットコードです。

import requests
url = "http://<my_url>"
files = {'file':open("<file to be uploaded>", "rb"), "name":"<name of the file>"}
r = requests.post(url, files=files)

ステータスコードは200なのでOKです。私の質問は、サーバー側で、このファイルを保存するにはどうすればよいですか?私はこれを通してdictの'name'にアクセスできます:

request.POST.get('name')

「ファイル」にもアクセスできますが、保存できません。私はこれを試しています:

ufile = request.POST.get('file')
dest = open("<file on the server side>", "wb+")
for chunk in ufile.chunks():
   dest.write(chunk)
dest.close()

しかし、これは機能しておらず、次の例外がスローされます。

unicode object has no attribute 'chunks'

私も試しました:

ufile.save(<"filepath on the server side">)

しかし、私は同じ例外に遭遇しました。

フィードバックをお待ちしています!前もって感謝します!

4

3 に答える 3

2

ファイルはにありませんrequest.POST、それらはにありrequest.FILESます。

ただし、ファイルアップロードのドキュメントを読みたいと思うかもしれません。

于 2013-01-28T14:51:52.753 に答える
0

チャンクごとに書き込む代わりに、次のことを試してください。

dest.write(ufile)

ufileオブジェクトは文字列であり、ファイルハンドルではありません。

于 2013-01-28T14:46:41.750 に答える
0

同じ問題がありました。リクエストヘッダーから「Content-type」を削除する必要があります。ファイルがに表示されrequest.FILESたら、次の操作を行うことができます。<TemporaryUploadedFile>

この答えは@jaysonprydeには関係ないと思いますが、おそらく他の誰かを助けるでしょう.. :)

于 2015-02-19T09:21:13.020 に答える