HTTP multipart/form-data格式之檔案上傳

鴨脖發表於2016-03-14

報文格式如下:


  1. --${bound}  
  2. Content-Disposition: form-data; name="Filename"  
  3.   
  4. HTTP.pdf  
  5. --${bound}  
  6. Content-Disposition: form-data; name="file000"filename="HTTP協議詳解.pdf"  
  7. Content-Type: application/octet-stream  
  8.   
  9. %PDF-1.5  
  10. file content  
  11. %%EOF  
  12.   
  13. --${bound}  
  14. Content-Disposition: form-data; name="Upload"  
  15.   
  16. Submit Query  
  17. --${bound}--  

舉例如下:



既然http協議本身的原始方法不支援multipart/form-data請求,那這個請求自然就是由這些原始的方法演變而來的,具體如何演變且看下文:

1、multipart/form-data的基礎方法是post,也就是說是由post方法來組合實現的

2、multipart/form-data與post方法的不同之處:請求頭,請求體。

3、multipart/form-data的請求頭必須包含一個特殊的頭資訊:Content-Type,且其值也必須規定為multipart/form-data,同時還需要規定一個內容分割符用於分割請求體中的多個post的內容,如檔案內容和文字內容自然需要分割開來,不然接收方就無法正常解析和還原這個檔案了。具體的頭資訊如下:

[html] view plain copy
  1. Content-Type: multipart/form-data; boundary=${bound}      

//其中${bound} 是一個佔位符,代表我們規定的分割符,可以自己任意規定,但為了避免和正常文字重複了,儘量要使用複雜一點的內容。如:--------------------56423498738365



相關文章