當前位置:成語大全網 - 書法字典 - 如何使用http將文件上傳到服務器python?

如何使用http將文件上傳到服務器python?

首先,標準的HTTP協議在這裏定義了上傳文件等表單:wwwietforg/RFC/RFC 1867 txt。大致的數據包格式如下:

單列:

content-type:multipart/form-data,boundary=AaB03x

- AaB03x

內容-處置:形式-數據;name="field1 "

普通人

- AaB03x

內容-處置:形式-數據;name = " picsfilename="file1.txt "

內容類型:文本/純文本

...文件1.txt的內容...

- AaB03x -

多個文件:

content-type:multipart/form-data,boundary=AaB03x

- AaB03x

內容-處置:形式-數據;name="field1 "

普通人

- AaB03x

內容-處置:形式-數據;name= "圖片"

內容類型:多部分/混合,邊界=BbC04y

- BbC04y

內容-處置:依戀;filename="file1.txt "

其次,python上傳文件有幾種方式:

1單獨封裝HTTP POST數據包:/questions/680305/using-multipartpost handler-to-POST-form-data-with-python。

import httplibimport mime typesdef post _ multipart(host,selector,fields,files): content_type,body = encode _ multipart _ formdata(fields,files) h = httplib。HTTP(host) h.putrequest('POST ',selector)h . put header(' Content-type ',Content _ type)h . put header(' Content-len ',str(len(body)))h . end headers()h . send(body)errcode,errmsg,headers = h . getreply()return h . fIle . read()def encode _ multipart _ formdata(fields,files):LIMIT = '-LIMIT _ of _ THE _ fIle _ eW _ $ ' CRLF = ' \ r \ n ' L =[]for(key,value) in fieldsname = " % s " ' % key)l . append(')l . append(value)for(key,filename,value) in files: