HTTP multipart/form-data格式之文件上传

报文格式如下:


  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



你可能感兴趣的:(ThinkPHP)