- 上传文件到服务器的方式种类有很多,今天我们这里讲一讲
Content-Type
为multipart/form-data
类型的方式上传文件时要注意的地方,我们以上传.xlsx表格为例。 - 直接上代码,不啰嗦
import requests
from requests_toolbelt import MultipartEncoder
def Send_To_Server(demo_str):
url = "https://test.juziwulian.com:17000/boss/sales/upgradeInfoUpload"
m = MultipartEncoder(
fields={
'file': ('filename', open(demo_str, 'rb'), "type=application/wps-office.xlsx")
}
)
headers = {'Content-Type': m.content_type, 'accept': 'application/json'}
response = requests.post(url, headers=headers, data=m, timeout=10)
state_test = eval(response.text)
print(state_test)
Send_To_Server('demo.xlsx')
- 这里要注意导入一个特殊的模块MultipartEncoder,用该模块来封装所需要上传的文件,另外我们还要特别注意的是,
headers头不能直接,headers = {'Content-Type': multipart/form-data, 'accept': 'application/json'}
,而是要用MultipartEncoder模块中已有的内容类型,所以我的headers应为headers = {'Content-Type': m.content_type, 'accept': 'application/json'}
,这是特别要注意的。 - 当然在fields中还可以添加很多其他字段
m = MultipartEncoder(
fields={'filename': 'demo',
'version': '10001,
'file': ('filename', open(demo_str, 'rb'), "type=application/wps-office.xlsx")
}
)