[英]How to convert a File URL into binary data (multipart/form-data) for upload
我想使用 Python requests.post 从 URL 上传文件
有没有人指导我如何将文件 URL 转换为二进制数据(multipart/form-data)以进行上传?
我已经尝试过这些代码,但它返回失败。
file = requests.get(file_url, stream=True)
file_upload = {
"name": file_name,
"uploadfile": file.content
}
headers = {
'Content-Type': 'multipart/form-data',
'Accept': 'application/json'
}
requests.post('{POST_URL}', files=file_upload, headers=headers)
POST_URL 是外部服务,仅支持 PDF 文件( string($binary) )。
{
"name": string
"uploadfile": string($binary)
}
非常感谢。
根据python-requests文档( 此处),如果您在requests.post
指定 files 参数,它将自动将请求内容类型设置为“ multipart/form-data
”。 因此,您只需要从您的帖子请求中省略标头部分,如下所示:
import requests
file = requests.get('{FILE_URL}', stream=True)
with open({TEMP_FILE}, 'wb') as f:
for chunk in response.iter_content(chunk_size=1024):
if chunk:
f.write(chunk)
binaryContent = open({TEMP_FILE}, 'rb')
a = requests.post('{POST_URL}', data={'key': binaryContent.read()})
更新:您可以先尝试在本地下载您的文件并将其二进制数据发布到您的 {POST_URL} 服务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.