http上传文件

在用网页上传文件时, html form的enctype要设为"multipart/form-data"(默认的mime type是"application/x-www-form-urlencoded")


MIME:Multipurpose Internet Mail Extensions

本来是表示email所支持的内容格式, 后来用途被扩展用于表示内容类型(不仅限email), 包括互联网上的内容类型

用mime规范定义的内容类型在http中被使用

解释:

http://en.wikipedia.org/wiki/MIME#MIME_headers


上传文件时, Contet-Type设为multipart/form-data

(Content-Type格式见http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17, media type格式见http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.7)

使用mutlipart类型时, 需要包含boundary作为media type的一部分

扫描二维码关注公众号,回复: 2892050 查看本文章

HTTP 1.1标准 3.7.2 Mulitpart Types中写到All multipart types share a common syntax, ..., and MUST include a boundary parameter as part of the media type value.


关于例子, 可以在RFC 1867中的第6节Examples中看到

<FORM ACTION="http://server.dom/cgi/handle"
           ENCTYPE="multipart/form-data"
           METHOD=POST>
     What is your name? <INPUT TYPE=TEXT NAME=submitter>
     What files are you sending? <INPUT TYPE=FILE NAME=pics>
     </FORM>

   and the user types "Joe Blow" in the name field, and selects a text
   file "file1.txt" for the answer to 'What files are you sending?'

   The client might send back the following data:

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

        --AaB03x
        content-disposition: form-data; name="field1"

        Joe Blow
        --AaB03x
        content-disposition: form-data; name="pics"; filename="file1.txt"
        Content-Type: text/plain

         ... contents of file1.txt ...
        --AaB03x--

猜你喜欢

转载自blog.csdn.net/gbstack08/article/details/8089471