html form POST提交时,enctype默认属性值是application/x-www-form-urlencoded
如果要上传文件,必须把属性设置成enctype="multipart/form-data"
enctype管理的是
form的MIME类型,总共有3种可能值
- application/x-www-form-urlencoded (默认值) 传输的是HTML表单值HTTP传输是以字节为单位?
- multipart/form-data 传输文件 2进制传输,比如图片或者mp3等等 HTTP传输是以位0或者1为单位?
- text/plain 传输纯文本 HTTP传输是以字节为单位?
在相应的Request的表头中,对应参数是Content-Type:application/x-www-form-urlencoded;
charset=UTF-8 这里同时指定了上传内容的字符编码charset。
MIME,它的英文全称是"Multipurpose Internet Mail Extensions" 多功能Internet 邮件扩充服务,它是一种多用途网际邮件扩充协议,
在1992年最早应用于电子邮件系统,但后来也应用到浏览器。服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的MIME类型,从而让浏览器知道接收到的信息哪些是MP3文件,哪些是Shockwave文件等等。服务器将MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。
Internet中有一个
专门组织IANA来确认标准的MIME类型,但Internet发展的太快,很多应用程序等不及IANA来确认他们使用的MIME类型为标准类型。因此他们使用在类别中以
x-开头的方法标识这个类别还没有成为标准,例如:x-gzip,x-tar等。事实上这些类型运用的很广泛,已经成为了事实标准。只要客户机和服务器共同承认这个MIME类型,即使它是不标准的类型也没有关系,客户程序就能根据MIME类型,采用具体的处理手段来处理数据。而Web服务器和浏览器(包括操作系统)中,缺省都设置了标准的和常见的MIME类型,只有对于不常见的 MIME类型,才需要同时设置服务器和客户浏览器,以进行识别。
常见的MIME类型
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .jpeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
分享到:
相关推荐
- **request.getParameter("xxx")**: 在表单的enctype设置为`multipart/form-data`时,此方法将不再有效。此时它总是返回`null`。 - **ServletInputStream request.getInputStream()**: 包含整个请求的数据,包括...
同时,表单的`enctype`属性必须设置为“multipart/form-data”。 #### 四、`UploadExample.jsp`分析 ```jsp ;charset=gb2312" %> <title><%=application.getServerInfo()%> 上传文件程序应用示例 <form action...
文件上传通常通过HTML的`<form>`标签实现,其中`enctype`属性设置为`multipart/form-data`,这样浏览器才能正确处理包含文件的表单数据。`<input type="file">`元素用于让用户选择要上传的文件。例如: ```html ...
- `<form action="doUpload.jsp" method="post" enctype="multipart/form-data">`:这是一个HTML表单,它指定了表单数据应通过POST方法提交,并且需要使用`multipart/form-data`的编码类型来上传文件。 - `...
- `enctype="multipart/form-data"`是必需的,因为它允许表单包含文件输入字段。 2. **文件输入字段**: - `<input type="file" name="filename">`是用于让用户选择本地文件的字段。`name`属性用于在PHP中识别...
同时,将表单的 `Method` 属性置为 `Post`,`Enctype` 属性设置为 `multipart/form-data`,`Action` 属性值设置为PHP程序文件名(如 `save-exam.php`)。 保存图片到MySQL数据库 表单内容上传到Web服务器后,需要...
在HTML表单中,如果需要上传文件,form元素的`method`属性应设置为`post`,并且添加`enctype="multipart/form-data"`。这是因为在multipart/form-data编码类型下,表单数据会被分割成多个部分,每个部分包含一个单独...
在HTML表单中,我们需要使用`<input type="file">`元素来让用户选择要上传的文件,并通过`enctype="multipart/form-data"`属性指定表单的数据类型,这是文件上传所必需的。提交表单时,数据将以多部分/表单数据的...
- `encType`:设置为 `multipart/form-data`,这是上传文件所需的 MIME 类型。 - `method`:设置为 `POST` 方法,以安全地传输文件数据。 - `target`:指定表单提交后的结果将显示在哪个 iframe 中。 2. **...
<form action="FileUploadServlet" method="post" enctype="multipart/form-data"> </form> ``` 在Servlet中,可以使用以下代码处理文件上传: ```java import org.apache.commons.fileupload.FileItem; ...
- 文件上传时的乱码(enctype="multipart/form-data")通常需要自定义解析器来处理,因为Servlet API本身不支持设置请求编码。可以使用第三方库如Apache Commons FileUpload或Spring MVC的MultipartFile来处理文件...
- 第8行:创建了一个POST方式的表单,并指定了`enctype`属性为`multipart/form-data`,这是为了支持文件上传。 - 第9行至第24行:使用表格形式展示输入项,包括文件输入框和提交按钮。 4. **编写JSP处理文件** ...
- 当用户通过表单提交数据时,确保表单的`enctype`属性设置为`application/x-www-form-urlencoded;charset=UTF-8`。 7. **Servlet读取请求参数** - 对于POST请求,需在Servlet中手动设置请求的编码,如`request....
- **表单编码**:在HTML表单中,`<form>`标签有一个`enctype`属性,用于指定数据编码类型,通常是`application/x-www-form-urlencoded`或`multipart/form-data`。对于文件上传,后者是必须的。 - **后端处理**:...
- `enctype` 属性需设为 `multipart/form-data`。这是因为文件数据通常较大且包含二进制内容,这种方式能确保数据以正确的格式传输。 例如: ```html <form action="file?file=upload" method="post" enctype=...
<form action="upload" method="post" enctype="multipart/form-data"> *" /> </form> ``` 在这个JSP页面中,我们创建了一个`<form>`元素,设置了`enctype`属性为`multipart/form-data`,这是处理文件上传所...
<form action="upload.jsp" method="post" enctype="multipart/form-data"> *"> 上传"> </form> ``` #### 1.2 JSP处理 在服务器端,我们使用`Part`接口处理上传的文件。JSP页面`upload.jsp`中,可以使用Servlet ...
当表单提交时,浏览器会将选定的文件打包成多部分的MIME格式数据,然后发送给服务器。 在Python中,我们可以使用Flask这样的轻量级Web框架来接收并处理这些文件。Flask提供了方便的接口来解析多部分表单数据,包括...
这个变量仅在PHP遇到未识别的MIME类型数据时产生,例如,对于enctype="multipart/form-data"的表单数据,这个变量是不可用的。即,使用$HTTP_RAW_POST_DATA无法接收通过enctype="multipart/form-data"上传的文件数据...