1:完成一个文件上传的功能

index.jsp

注意更换form表单的enctype

enctype就是encodetype就是编码类型的意思。

multipart/form-data是指表单数据有多部分构成,既有文本数据,又有文件等二进制数据的意思。

需要注意的是:默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。

application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件,multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。

下面是扩展:

一、关于HTML <form> 标签的 enctype 属性

application/x-www-form-urlencoded:在发送前编码所有字符(默认)    

multipart/form-data:    不对字符编码,或在使用包含文件上传控件的表单时,必须使用该值。

text/plain:空格转换为 "+" 加号,但不对特殊字符编码。    

二、enctype:规定了form表单在发送到服务器时候编码方式,有如下的三个值

1、application/x-www-form-urlencoded。默认的编码方式。但是在用文本的传输和MP3等大型文件的时候,使用这种编码就显得 效率低下。 

2、multipart/form-data 。 指定传输数据为二进制类型,比如图片、mp3、文件。 

3、text/plain。纯文体的传输。空格转换为 “+” 加号,但不对特殊字符编码。

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>文件上传</title>
 8 </head>
 9 <body>
10     <form action="FileServlet" method="POST" enctype="multipart/form-data">
11         <table>
12         <tr>
13             <td>
14             name:
15             </td>
16             <td>
17             <input name="user">
18             </td>
19         </tr>
20         <tr>
21             <td>
22             password:
23             </td>
24             <td>
25             <input name="pwd">
26             </td>
27         </tr>
28         <tr>
29             <td>
30             </td>
31             <td>
32             <input type="file" name="file">
33             </td>
34         </tr>
35         <tr>
36             <td></td>
37             <td>
38                 <input type="submit" value="上传">
39             </td>
40         </tr>
41         </table>
42     </form>
43 </body>
44 </html>
View Code

相关文章: