首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在第二次开机自检时始终为空的多部分编码文件

在第二次开机自检时始终为空的多部分编码文件
EN

Stack Overflow用户
提问于 2013-03-08 07:54:09
回答 1查看 590关注 0票数 0

我需要通过POST在两个不同的网站发送一个文件。因此,我使用请求库。

第二个响应中的照片大小始终为零。即使我改变了网站的顺序。

代码语言:javascript
复制
import requests

data = {'id': 1}

f = open('/tmp/photo7.jpg', 'rb')
image = {'image': ('photo7.jpg', f)}

# works fine
requests.post('http://site.com/', data=data, files=image)
# empty file
requests.post('http://othersite.com/', data=data, files=image)

可能的问题是什么?

我认为问题出在file对象在文件中的当前位置(可能是在第一次响应之后的文件末尾),但我不确定。

我无法正确设置seek(0),回溯:http://pastebin.com/gnD2c1AR

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-13 06:20:19

使用seek是正确的方法,但是在下面的代码行中,您将seek的结果(将为0)而不是文件句柄传递给requests.post

代码语言:javascript
复制
files = {'image': ('photo7.jpg', f.seek(0))}

试试这个:

代码语言:javascript
复制
...
requests.post('http://site.com/', data=data, files=image)
f.seek(0)
requests.post('http://othersite.com/', data=data, files=image)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15284220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档