python post上传文件

1.使用urllib2原始的方式

import urllib2
__author__ = 'huangjianan'

def post_file(url,filepath,header):
    boundary = 'IYhWIT-aMbWSbS32CkryLCcV4lp-3N'
    #body
    pic_type=filepath.split('.')[-1]
    data = []
    data.append('--%s' % boundary)
    fr=open(filepath,'rb')
    data.append('Content-Disposition: form-data; name="%s"; filename="test.%s"' % ('avataFile',pic_type))
    data.append('Content-Type: image/%s\r\n' % pic_type)
    buffer=fr.read()
    data.append(buffer)
    fr.close()
    data.append('--%s--\r\n' % boundary)
    http_body='\r\n'.join(data)
    req=urllib2.Request(url, data=http_body)
    #header
    for (k,v) in header.items():
        req.add_header(k,v)
    resp = urllib2.urlopen(req, timeout=5)
    response=resp.read()
    return response

  2.使用requests方式

import requests
headers = {'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
           'Accept-Encoding':'gzip,deflate'}
fileparams = {"Filedata": (filepath.split("/")[-1], open(abspath, "rb"), "application/octet-stream")}
r = requests.post(url, data={},files=fileparams, headers=headers)

  

转载于:https://www.cnblogs.com/huangjianan/p/3989206.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值