关于python中MultipartEncoder函数实现文件上传
作者:互联网
import requests
from requests_toolbelt import MultipartEncoder
encoder = MultipartEncoder({'field': 'value', 'other_field', 'other_value'}) r = requests.post('https://httpbin.org/post', data=encoder, headers={'Content-Type': encoder.content_type}) 这是官方的例子,大概就是MultipartEncoder参数是一个字典,字典中存入文件名和文件内容 通常情况下,我们传入的文件内容是open文件后的对象 这是我们公司的上传方法 def uploadProduct(filename, binary, meta=None, area="100000"): data = MultipartEncoder(fields={ 'file': (filename, binary.getvalue(), 'text/xml'), }) groupName = config.PRODUCT_GROUP_MAPPER[area]
rsp = requests.post('%s/%s' % (config.PRODUCT_SERVICE_URL, groupName), data=data, headers={ 'Content-Type': data.content_type})
if rsp.status_code == 200: return True, rsp.content else: return False, rsp.content 其中filename是需要上传的文件名,需要注意的是,这个文件名不是文件的完整路径,binary是文件的二进制流,”text/xml“是上传文件的类型 然后调用上传接口,将MultipartEncoder对象以参数的形式赋给post请求
encoder = MultipartEncoder({'field': 'value', 'other_field', 'other_value'}) r = requests.post('https://httpbin.org/post', data=encoder, headers={'Content-Type': encoder.content_type}) 这是官方的例子,大概就是MultipartEncoder参数是一个字典,字典中存入文件名和文件内容 通常情况下,我们传入的文件内容是open文件后的对象 这是我们公司的上传方法 def uploadProduct(filename, binary, meta=None, area="100000"): data = MultipartEncoder(fields={ 'file': (filename, binary.getvalue(), 'text/xml'), }) groupName = config.PRODUCT_GROUP_MAPPER[area]
rsp = requests.post('%s/%s' % (config.PRODUCT_SERVICE_URL, groupName), data=data, headers={ 'Content-Type': data.content_type})
if rsp.status_code == 200: return True, rsp.content else: return False, rsp.content 其中filename是需要上传的文件名,需要注意的是,这个文件名不是文件的完整路径,binary是文件的二进制流,”text/xml“是上传文件的类型 然后调用上传接口,将MultipartEncoder对象以参数的形式赋给post请求
标签:python,data,content,MultipartEncoder,rsp,post,上传 来源: https://www.cnblogs.com/yqkhm/p/15992831.html