下面是我在某个服务器上传文件的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,所以没关系。 我的问题是,在服务器端,如何保存此文件? 我可以访问&#39; name&#39;通过这个词:
request.POST.get('name')
我可以访问&#39;文件&#39;同样但我无法保存它。我正在尝试这个:
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">)
但我遇到了同样的例外。
希望得到任何反馈!提前谢谢!
答案 0 :(得分:2)
文件不在request.POST
中,它们位于request.FILES
。
但您可能想阅读the file uploads documentation。
答案 1 :(得分:0)
尝试以下方法,而不是按块编写块:
dest.write(ufile)
ufile对象是一个字符串,而不是文件句柄。
答案 2 :(得分:0)
有同样的问题..
你应该删除&#34; Content-type&#34;来自请求标题,您的文件将显示在request.FILES
中,然后您就可以使用<TemporaryUploadedFile>
我认为这个答案与@jaysonpryde无关,但也许可以帮助其他人.. :)