我试图通过对讲表格上传文件,然后发送到API。
s 在此编码函数 :
#FYI, requestFile = request.FILES[ file ]
def EncodeFile(self, requestFile, fields = []):
BOUNDARY = ----------boundary------
CRLF =
body = []
# Add the metadata about the upload first
for param in fields:
body.extend(
[ -- + BOUNDARY,
Content-Disposition: form-data; name="%s" % param,
,
fields[param],
])
fileContent = requestFile.read()
body.extend(
[ -- + BOUNDARY,
Content-Disposition: form-data; name="file"; filename="%s"
% requestFile.name,
# The upload server determines the mime-type, no need to set it.
Content-Type: + requestFile.content_type,
,
fileContent,
])
# Finalize the form body
body.extend([ -- + BOUNDARY + -- , ])
result = multipart/form-data; boundary=%s % BOUNDARY, CRLF.join(body)
return result
问题在于当它到达“CRLF.join(body)”时, 它抱怨“ utf8 codec 可以在零位置解码 byte 0xff: 无效的开头字节 ” 。
与命令行完全相同的代码功能完美无瑕, 但请求文件实际上是一个文件路径, 而我正在读取内容前做一个打开( 请求文件, rb ) 的操作 。
我这辈子都想不出下一步要做什么了。 在过去10个小时左右的时间里,我一直在寻找答案。