JSP Servlet文件上传的实现首先就是环境和软件的准备:

创新互联-专业网站定制、快速模板网站建设、高性价比海北州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式海北州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖海北州地区。费用合理售后完善,十余年实体公司更值得信赖。
common-fileupload组件
下载地址:http://jakarta.apache.org/commons/fileupload/
下载后解压zip包,将commons-fileupload-1.0.jar复制到tomcat的webapps\你的webapp\WEB-INF\lib\下
Create a servlet
- import java.io.*;
 - import java.util.*;
 - import javax.servlet.*;
 - import javax.servlet.http.*;
 - import org.apache.commons.fileupload.*;
 - public class Upload extends HttpServlet {
 - private String uploadPath = "C:\\upload\\"; // 用于存放上传文件的目录
 - private String tempPath = "C:\\upload\\tmp\\"; // 用于存放临时文件的目录
 - public void doPost(HttpServletRequest request, HttpServletResponse response)
 - throws IOException, ServletException
 - {
 - try {
 - DiskFileUpload fu = new DiskFileUpload();
 - // 设置最大文件尺寸,这里是4MB
 - fu.setSizeMax(4194304);
 - // 设置缓冲区大小,这里是4kb
 - fu.setSizeThreshold(4096);
 - // 设置临时目录:
 - fu.setRepositoryPath(tempPath);
 - // 得到所有的文件:
 - List fileItems = fu.parseRequest(request);
 - Iterator i = fileItems.iterator();
 - // 依次处理每一个文件:
 - while(i.hasNext()) {
 - FileItem fi = (FileItem)i.next();
 - // 获得文件名,这个文件名包括路径:
 - String fifileName = fi.getName();
 - if(fileName!=null) {
 - // 在这里可以记录用户和文件信息
 - // ...
 - // 写入文件a.txt,你也可以从fileName中提取文件名:
 - fi.write(new File(uploadPath + "a.txt"));
 - }
 - }
 - // 跳转到上传成功提示页面
 - }
 - catch(Exception e) {
 - // 可以跳转出错页面
 - }
 - }
 - }
 
当Servlet收到浏览器发出的Post请求后,在doPost()方法中实现文件上传。以下是示例代码:
如果要在配置文件中读取指定的上传文件夹,可以在init()方法中执行:
- public void init() throws ServletException {
 - uploadPath = ....
 - tempPath = ....
 - // 文件夹不存在就自动创建:
 - if(!new File(uploadPath).isDirectory())
 - new File(uploadPath).mkdirs();
 - if(!new File(tempPath).isDirectory())
 - new File(tempPath).mkdirs();
 - }
 
Servlet文件上传之配置Servlet,用记事本打开tomcat\webapps\你的webapp\WEB-INF\web.xml,没有的话新建一个。典型配置如下:
- ﹤?xml version="1.0" encoding="ISO-8859-1"?﹥
 - ﹤!DOCTYPE web-app
 - PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 - "http://java.sun.com/dtd/web-app_2_3.dtd"﹥
 - ﹤web-app﹥
 - ﹤servlet﹥
 - ﹤servlet-name﹥Upload﹤/servlet-name﹥
 - ﹤servlet-class﹥Upload﹤/servlet-class﹥
 - ﹤/servlet﹥
 - ﹤servlet-mapping﹥
 - ﹤servlet-name﹥Upload﹤/servlet-name﹥
 - ﹤url-pattern﹥/fileupload﹤/url-pattern﹥
 - ﹤/servlet-mapping﹥
 - ﹤/web-app﹥
 
Servlet文件上传之收尾:配置好Servlet后,启动Tomcat,写一个简单的html测试:
- ﹤form action="fileupload" method="post" enctype="multipart/form-data" name="form1"﹥
 - ﹤input type="file" name="file"﹥
 - ﹤input type="submit" name="Submit" value="upload"﹥
 - ﹤/form﹥
 
注意action="fileupload"其中fileupload是配置servlet时指定的url-pattern。
那么JSP Servlet文件上传的实现就完成了,在开发思路上你是否有了一点变化呢?