python 3はrequestsを使ってファイルをアップロードする正しいオープン方式です。

7933 ワード

python 3はrequestsを使ってファイルをアップロードする正しいオープン方式です。
ネット上の他の人の書いたいくつか例はすべてでたらめで、まったく役に立ちません!
正しいオープン方式(パラメータなしでアップロード):
アップロードは基本的に登録情報を持っています。クッキーを入れます。
import urllib3
import requests
from requests.cookies import RequestsCookieJar

def do_upload():
	url = 'http://XXXXX'
    filepath = 'E:/18156JsDBproxyold_1.jpg'
    cookie_jar = RequestsCookieJar()
    cookie_jar.set('JSESSIONID', '0000zgdUT0kisG9gSU62Nbm10etfn')
    file = ('18156JsDBproxyold_1.jpg', open(filepath, 'rb').read())
    data = {
        'file': file
    }
    encode_data = urllib3.encode_multipart_formdata(data)
    content_type = encode_data[1]
    #         
    headers = {
        'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
        'Accept-Encoding': 'gzip,deflate',
        'Accept-Language': 'zh-CN',
        'Content-Type': content_type,
    }
    reponse = requests.post(url, headers=headers, data=encode_data[0], cookies=cookie_jar)
    print(reponse.text)
正しいオープン方式(パラメータ付きアップロード):
def do_upload():
	url = 'http://XXXXX'
    filepath = 'E:/18156JsDBproxyold_1.jpg'
    cookie_jar = RequestsCookieJar()
    cookie_jar.set('JSESSIONID', '0000zgdUT0kisG9gSU62Nbm10etfn')
    #        read,       
    file = ('18156JsDBproxyold_1.jpg', open(filepath, 'rb'))
    files= {
        'file': file
    }
    data={
    	'filetype':'beautful'
	}
    #         
    headers = {
        'Accept': 'text/html, application/xhtml+xml, image/jxr, */*',
        'Accept-Encoding': 'gzip,deflate',
        'Accept-Language': 'zh-CN'
    }
    reponse = requests.post(url, headers=headers, data=data,files=files, cookies=cookie_jar)
    print(reponse.text)