表单的enctype="multipart/form-data"

在通过表单上传文件的时候,需要输入enctype="multipart/form-data"

最早的HTTP POST是不支持文件上传的,给编程开发带来很多问题。但是在1995年,ietf出台了rfc1867,也就是《RFC 1867 -Form-based File Upload in HTML》,用以支持文件上传。所以Content-Type的类型扩充了multipart/form-data用以支持向服务器发送二进制数据。因此发送post请求时候,表单<form>属性enctype共有二个值可选,这个属性管理的是表单的MIME编码:

①application/x-www-form-urlencoded(默认值)
 ②multipart/form-data
其实form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x- www-form-urlencoded".

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的内容,如文件内容和文本内容自然需要分割开来,不然接收方就无法正常解析和还原这个文件了

4、multipart/form-data的请求体也是一个字符串,不过和post的请求体不同的是它的构造方式,post是简单的name=value值连接,而multipart/form-data则是添加了分隔符等内容的构造体。

对于上传上来的文件,使用$_FILES数组来存放,可以通过操作$_FILES数组来处理上传上来的文件。

$_FILES数组是一个索引数组,可以像处理平常的数组一样处理它。

时间: 2024-12-18 17:02:23

表单的enctype="multipart/form-data"的相关文章

form表单的enctype=‘multipart/form-data‘

enctype='multipart/form-data' HTML forms provide three methods of encoding. application/x-www-form-urlencoded (the default) multipart/form-data text/plain 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么 写,知其然而不知其所以然. 那到底

C# form表单提交enctype=&quot;multipart/form-data&quot; 与 enctype=&quot;application/x-www-form-urlencoded&quot; 两者之间的区别

1.application/x-www-form-urlencoded GET方式,会将表单中的数据(键值对)经过urlencode编码后追加到url中. POST方式,会将表单中的数据经过urlencode编码后放在request body 中. 2.multipart/form-data 当需要在表单内上传文件时(二进制流数据)时,就需要使用 multipart/form-data. "application/x-www-form-urlencoded",他是默认的MIME内容编码

表单属性enctype=&quot;multipart/form-data&quot;

首先知道enctype这个属性管理的是表单的MIME编码.共有三个值可选:1.application/x-www-form-urlencoded2.multipart/form-data3.text/plain其中application/x-www-form-urlencoded是默认值,作用是设置表单传输的编码.例如我们在AJAX中见过xmlHttp.setRequestHeader("Content-Type","application/x-www-form- urlen

form 表单添加 enctype =&quot;multipart/form-data&quot; 属性后后台接收中文乱码

解决办法: new String( request.getParameter("title").getBytes("ISO-8859-1"),"utf-8") ISO-8859-1 是你jsp页面默认的编码,一般新建一个jsp页面最顶端可以看到默认编码pageEncoding=

Ajax表单提交插件jquery form

jQuery Form插件是一个优秀的Ajax表单插件,我们可以非常容易的使用它处理表单控件的值,清空和复位表单控件,附件上传,以及完成Ajax表单提交. jQuery Form有两个核心方法ajaxForm()和ajaxSubmit(),本文我们重点介绍ajaxSubmit()的应用. HTML 首先我们载入jquery库和jquery.form.js插件.jquery.form.js插件的官网地址:http://www.malsup.com/jquery/form/ <script type

form表单的enctype

form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x- www-form-urlencoded".这个属性管理的是表单的MIME编码,共有三个值可选: ①application/x-www-form-urlencoded (默认值) ②multipart/form-data ③text/plain 其中①application/x-www-form-urlencoded是默认值,大家可能在AJAX里见过这

form表单中加上enctype=&quot;multipart/form-data&quot; 在servlet中get parameter(参数)返回空

1.首先说返回为空的问题: 这个我尝试多次才定位问题即使enctype="multipart/form-data"这句话引起的,但是我做的是文件上传必须加这句话. 后来各种百度 SmartUpload smartupload = new SmartUpload(); smartupload.initialize(config, request, response); smartupload.setMaxFileSize(2000000000L);//每个上传文件最大2MB; smart

form表单的应用:form对象自带属性和方法及提交时提交的数据.....

1.html中含有form表单 (1)html <form id="picLoad" class="lt" style="width: 230px;" enctype="multipart/form-data"> <label> <div class="upload">上传图片</div> <input id="doc-form-file&qu

表单的enctype property

enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application/x-www-form-urlencoded".就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值). application/x-www-form-urlencoded-----在发送前编码所有字符(默认) multipart/form-data-----不对字符编码.在使用包含文