使用python请求上传二进制文件

时间:2019-02-06 15:16:55

标签: python-requests postman

我正在使用请求库上传文件,代码如下:

files = {'file': open(full_file_name, 'rb')}
headers = {"content-type": 'application/x-www-form-urlencoded'}
final_resp = requests.put(loc, files=files, headers=headers)

问题在于文件的起点和终点已添加了一些额外的内容。

添加到起点的内容是:

--b16010ae7646a031a5adc64ac0661e72
Content-Disposition: form-data; name="file"; filename="1016064585-65769268.csv"

添加到端点的内容是:

--b16010ae7646a031a5adc64ac0661e72--

但是当通过postman上传同一文件时,不会出现这些问题。

这是邮递员enter image description here的屏幕截图。

邮递员的头是:

应用程序/ x-www-form-urlencoded

1 个答案:

答案 0 :(得分:0)

可能是因为您使用multipart / form上传文件。请尝试使用下面的代码之类的数据

data = open(localFilePath, 'rb').read()
headers = {
    "Content-Type":"application/binary",
}
upload = requests.put(uploadUrl,data=data,headers=headers)