標籤:user com 資料 部分 str live view pac 之間
( From: http://home.meegoq.com/home-space-do-blog-uid-17-id-81.html )
HTTP multipart/form-data 上傳方式說明
已有 123 次閱讀 2010-12-1 11:13 |個人分類:網路學習|關鍵詞:HTTP multipart
http上傳檔案方面的功能使用的協議是rfc1867 (http://www.ietf.org/rfc/rfc1867.txt) 為 http 協議。用戶端的瀏覽器,如 Microsoft IE, Mozila, Opera 等,按照此規範將使用者指定的檔案發送到伺服器。伺服器端的網頁程式,如 php, asp, jsp 等,可以按照此規範,解析出使用者發送來的檔案。Microsoft IE, Mozila, Opera 已經支援此協議,在網頁中使用一個特殊的 form 就可以傳送檔案。絕大部分 http 伺服器,包括 tomcat ,已經支援此協議,可接受發送來的檔案。各種網頁程式,如 php, asp, jsp 中,對於上傳檔案已經做了很好的封裝。
請求報文頭如下,每一行後面如果沒有標明字元,說明其後沒有任何字元,直接連著下一行的字元:
POST /handset/save HTTP/1.1
\r\n
Host: gateway.ereneben.com
\r\n
Accept: */*
\r\n
User-Agent: T1 HTTP Adaptor
\r\n
Connection: Keep-Alive
\r\n
User-Serial: 1234567890ABCDEFGHIJKLMC
\r\n
User-Cert: Q+XuG7315JEIzRw9atIvjhCv0d8+4CN5ZGLZWBPs+1FjUcl5Bijd859rG4BUbIJrjoK2dbEuMMC8XmFAcuxJ2SSyXMty63iu0tnhsCJhgPmo4bFV0Px+V9CwKLixNa/+7bX2t3sCz7TMPfrYlKECF3xm4rB9q9/6htFKxCv99q4=
\r\n
User-ID: 122
\r\n
Content-Type: multipart/form-data; boundary=--------------------------7d93b91e2404d①
\r\n
Content-Length: 299⑦
\r\n
\r\n
-----------------------------7d93b91e2404d②
\r\n
Content-Disposition: form-data; name="update1"; filename="/Storage Card/eben.txt"
\r\n
Content-Type: application/octet-stream; charset=GBK
\r\n
Content-Transfer-Encoding: binary
\r\n
\r\n③
CkAtom C++ Class Reference (Visual C++)
\r\n④
-----------------------------7d93b91e2404d --⑤
\r\n⑥
說明:
①Content-Type必須指定boundary。其中前面的"---------------------------7d"是 IE 特有的標誌。其後的字串"7d93b91e2404d"是隨機產生的字串。Boundary是檔案上傳時表單中檔案分割線。
②請求報文體中的分割線
"-----------------------------7d93b91e2404d"
比boundary=---------------------------7d93b91e2404d
中的分割線前面多"--"。
③表單中上傳檔案的要求標頭和檔案資料之間的分割符是"\r\n \r\n"。與HTTP請求報文頭與報文體之間的分割符相同。
④上傳檔案結尾需要追加分割符"\r\n"。
⑤最後一個檔案結尾的分割線"-----------------------------7d93b91e2404da--",即boundary之前和結尾都需要追加"--"。最後一個分割線比較特殊,注意不要忘記後面的"--"。
⑥最後請求報文結尾需要追加分割符"\r\n"。
⑦ 最後需要注意的是請求報文頭中的Content-Length參數的值是整個報文體的長度。即從分割線②第一個字元開始,到報文結尾分割 符"\r\n"為止的整個長度。注意不要漏掉計算報文結尾分割符"\r\n"的長度,否則Content-Length參數的值變為了297, 就會出錯。
以上注意事項都必須遵守,否則請求就會出錯。
http://www.chongchonggou.com/g_92052682.html
HTTP multipart/form-data 上傳方式說明(有8個注意點)