我尝试从python中的HTTP发布请求接收图像。我正在使用BaseHTTPHolder和do_POST()函数。我尝试在本地主机上运行服务器时从本地主机地址http:127.0.0.1:8080 / photo接收图像。我尝试使用下面的代码,它保存照片,但由于未完全收到照片而无法打开。
img = urllib2.urlopen('http://127.0.0.1:8080/photo').read()
content_length = int(self.headers.getheader('content-length',0))
file_content = self.rfile.read(content_length)
with open('/Users/kasymhan/Desktop/sprint2/file01.jpg','wb') as s:
s.write(file_content)
编辑 我的do_POST()函数
def do_POST(self):
url = 'http://127.0.0.1:8080/photo/file02.jpg'
request_headers = self.headers
content_length = request_headers.getheaders('content-length')
length = int(content_length[0]) if content_length else 0
file_content = self.rfile.read(length)
img = urllib2.urlopen(url).read()
with open('/Users/kasymhan/Desktop/sprint2/image.jpg','wb') as s:
s.write(img)
答案 0 :(得分:0)
为什么不直接将图像内容写入输出文件:
import urllib2
url = "http://farm5.static.flickr.com/4105/5063092779_17b2133825_b.jpg"
img = urllib2.urlopen(url).read()
with open('./image.jpg','wb') as s:
s.write(img)