• 上传文件到服务器的方式种类有很多,今天我们这里讲一讲Content-Typemultipart/form-data类型的方式上传文件时要注意的地方,我们以上传.xlsx表格为例。
  • 直接上代码,不啰嗦
import requests
from requests_toolbelt import MultipartEncoder

def Send_To_Server(demo_str):
    url = "https://test.juziwulian: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")
            }
    )
  • 等等
  • 希望能帮助你!

更多推荐

python 实现Content-Type为multipart/form-data类型的方式上传文件到服务端