繁体   English   中英

如何将文件 URL 转换为二进制数据(multipart/form-data)以进行上传

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM