首页 > 解决方案 > 上传和上传文件而不使用 python 请求保存

问题描述

我有一个 Web 服务器,它充当用户和文件服务器之间的代理。用户可以将他们的文件上传到我的网络服务器,我将它们上传到文件服务器。我希望能够在不保存临时上传文件的情况下执行此操作,但每次我从文件服务器收到意外的文件结束错误。这是我的代码(我正在为我的 API 使用 django rest 框架)。

headers = {"content-type":"multipart/form; boundary={}".format(uuid.uuid4().hex)}
files = []
for f in request.FILES.getlist('file'):
    files.append((f.name, open(f.file.name,'rb'), f.content_type))
files_dict = {'file': files}

r = requests.post(url, files=files, headers=headers)

标签: pythondjangopython-3.xdjango-rest-framework

解决方案


您在请求中滥用了content-type标头。无需手动设置multipart/formboundary如果您使用files来自requests. 这就是为什么您会收到意外的文件结束错误。尝试在没有该标头的情况下发送您的请求。

r = requests.post(url, files=files)

推荐阅读