gpt4 book ai didi

python可以将图像文件读取为二进制文件

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:19 30 4
gpt4 key购买 nike

我需要上传一个图像文件,我按照人们的建议使用 MultipartPostHandler.py。但仍然不起作用。这是我的代码:

params = {"upload", open("12345.jpg", "rb")} // in 'rb'
opener = urllib2.build_opener(MultipartPostHandler)
res = opener.open(url, params)

这是 MultipartPostHander 中的代码:

def multipart_encode(vars, files, boundary = None, buffer = None):
if boundary is None:
boundary = mimetools.choose_boundary()
if buffer is None:
buffer = ''
for(key, value) in vars:
buffer += '--%s\r\n' % boundary
buffer += 'Content-Disposition: form-data; name="%s"' % key
buffer += '\r\n\r\n' + value + '\r\n'
for(key, fd) in files:
file_size = os.fstat(fd.fileno())[stat.ST_SIZE]
filename = fd.name.split('/')[-1]
contenttype = mimetypes.guess_type(filename)[0] or 'application/octet-stream'
buffer += '--%s\r\n' % boundary
buffer += 'Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename)
buffer += 'Content-Type: %s\r\n' % contenttype
# buffer += 'Content-Length: %s\r\n' % file_size
fd.seek(0)
buffer += '\r\n' + fd.read() + '\r\n'
buffer += '--%s--\r\n\r\n' % boundary
return boundary, buffer
multipart_encode = Callable(multipart_encode)

https_request = http_request

错误出现在:

buffer += '\r\n' + fd.read() + '\r\n'

错误是:

'ascii' codec can't decode byte 0xff in position 2: ordinal not in range(128)

这个问题困扰了我很多,请帮帮我!谢谢。

最佳答案

我已经使用 Doug Hellman 的博客中的 MultiPartForm 类成功地将文件上传到我们的邮件服务器:http://pymotw.com/2/urllib2/index.html#module-urllib2

希望你也能使用它。

关于python可以将图像文件读取为二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7794985/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com