form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。
当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串append到url后面,用?分割,加载这个新的url。
当action为post时候,浏览器把form数据封装到http body中,然后发送到server。
如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。
但是如果有type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。
如果有以下form,并选择了file1.txt上传
<form action="http://server.com/cgi/handle"
enctype="multipart/form-data"
method="post">
<input type="text" name="submit-name" value="chmod777"><br />
What files are you sending? <input type="file" name="files"><br />
</form>
则有如下body:
Content-Type: multipart/form-data; boundary=AaB03x
--AaB03x
Content-Disposition: form-data; name="submit-name"
chmod777
--AaB03x
Content-Disposition: form-data; name="files"; filename="file1.txt"
Content-Type: text/plain
... contents of file1.txt ...
--AaB03x--
以上是我看了
http://www.w3.org/TR/html401/interact/forms.html#h-17.13.1的理解,可能有误。:)
分享到:
相关推荐
在Java Web开发中,我们经常遇到表单提交数据的情况,特别是涉及到文件上传时,`<form>`标签的`ENCTYPE`属性通常会被设置为`multipart/form-data`。这是因为`multipart/form-data`允许在请求中携带二进制数据,如...
<form method="POST" id='form2' name='form2' action="${weiboPublictUrl}" ENCTYPE="multipart/form-data"> <textarea id="status" name="status" rows="2" cols="60"></textarea> ()" value="PublicWeibo"/>...
// 同样,也可以设置其他属性,如action和method $("#myForm").attr("action", "upload.php"); $("#myForm").attr('method', 'POST'); // 如果需要在特定的frame中处理响应,可以设置target属性 var frameId =...
application/x-www-form-urlencoded是默认的编码格式,当action为get时,浏览器会将form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串append到url后面,用?分割,加载这个新的url。当action...
Enctype :指定将数据回发到服务器时浏览器使用的编码类型。用于表单里有图片上传。 编码类型有以下三种: application/x-...form action=”${pageContext.request.contextPath}/imageUpload_saveOrUpdat
<form id="uploadForm" action="upload.action" method="post" enctype="multipart/form-data"> 上传 </form> ``` 2. **jQuery和form插件引入**:在HTML文件中引入jQuery库和form插件的脚本。 ```html ...
<form method="post" action="up.htm" enctype="multipart/form-data"> 文件1:<input type="file" name="file"/><br> 文件2:<input type="file" name="file1"/><br> 描述:...
jQuery Form插件是jQuery库的一个扩展,它使得表单提交变得更加灵活和易于控制,特别是在处理文件上传时。在这个例子中,我们将探讨如何在Asp.Net MVC项目中实现这一功能。 首先,我们需要确保项目已经引用了必要的...
<form action="uploadServlet" method="post" enctype="multipart/form-data"> 上传"> </form> ``` 这里的`enctype="multipart/form-data"`是关键,它指示浏览器以多部分数据格式发送表单数据,适合处理文件上传...
form表单有两个关键属性——`method`和`action`。`method`定义了数据如何发送到服务器,通常有`GET`和`POST`两种方式。`GET`将数据附加到URL,而`POST`则将数据隐藏在请求体中。`action`属性指定了处理表单数据的...
<form id="myForm" action="/upload" method="post" enctype="multipart/form-data"> 上传" /> </form> $(document).ready(function() { $('#myForm').ajaxForm({ beforeSubmit: function() { // 提交前的...
- `enctype`属性:仅对`POST`方法适用,规定如何编码发送的数据,如`application/x-www-form-urlencoded`或`multipart/form-data`。 3. **表单验证**: - 使用内置的HTML5验证属性,如`required`、`min`、`max`、...
<form action="upload.action" method="post" enctype="multipart/form-data"> 选择文件" /> 上传" /> </form> ``` 在服务器端,我们需要创建一个Action类来处理上传请求。Struts2会自动将文件内容封装到`...
- HTML5引入了`formaction`、`formenctype`、`formmethod`和`formtarget`等属性,可以在提交按钮上设置,以便指定不同的提交目标、编码类型、HTTP方法以及打开新窗口或框架。这样,不同的submit按钮可以根据这些...
<form id="myForm" action="/submit" method="post" enctype="multipart/form-data"> <!-- 表单内容 --> </form> $('#myForm').ajaxForm({ dataType: 'json', success: function(data) { // 处理返回的JSON...
SSH框架的结合使得开发者能够利用Struts2的MVC设计模式,Spring的依赖注入和事务管理,以及Hibernate的对象关系映射功能。下面,我们将详细探讨在Java SSH环境下实现文件上传的代码原理和步骤。 1. **Struts2上传...
<form action="/upload" method="post" enctype="multipart/form-data"> <!-- 其他表单元素 --> 上传"> </form> ``` 这里,`enctype="multipart/form-data"`是关键,它允许表单包含文件上传。 ### 文件和表单同步...
3. `enctype`: 当`method`为`POST`时,指定数据编码类型,如`application/x-www-form-urlencoded`(默认)或`multipart/form-data`(用于文件上传)。 4. `name`: 为表单提供一个唯一标识符,方便在JavaScript或...