首页 > 代码库 > servlet 通过 FileItem 实现多文件上传
servlet 通过 FileItem 实现多文件上传
【本文简介】
一个servlet 多文件上传的简单例子。
【依赖包】
- commons-fileupload-1.3.1.jar
- commons-io-2.2.jar
【依赖包下载】
- commons-fileupload-1.3.1.jar:http://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi
- commons-io-2.2.jar:http://commons.apache.org/proper/commons-io/download_io.cgi
【文件夹结构】
【HTML表单】
1 <body>2 <form action="UploadServlet" method="post" enctype="multipart/form-data">3 <input name="file" type="file" />4 <input name="file" type="file" />5 <input type="submit" value="上传"/>6 </form>7 </body>
【java代码】
1 package com.zjm.www.servlet; 2 3 import java.io.File; 4 import java.io.IOException; 5 import java.io.PrintWriter; 6 import java.util.Iterator; 7 8 import javax.servlet.ServletException; 9 import javax.servlet.http.HttpServlet;10 import javax.servlet.http.HttpServletRequest;11 import javax.servlet.http.HttpServletResponse;12 13 import org.apache.commons.fileupload.FileItem;14 import org.apache.commons.fileupload.FileItemFactory;15 import org.apache.commons.fileupload.disk.DiskFileItemFactory;16 import org.apache.commons.fileupload.servlet.ServletFileUpload;17 18 /**19 * @描述 servlet 通过 FileItem 实现多文件上传20 * @作者 小M21 * @博客 http://www.cnblogs.com/xiaoMzjm/22 * @时间 2014/07/3023 */24 public class UploadServlet extends HttpServlet {25 26 private static final long serialVersionUID = 1L;27 28 public void doGet(HttpServletRequest request, HttpServletResponse response)29 throws ServletException, IOException {30 doPost(request, response);31 }32 33 @SuppressWarnings("unchecked")34 public void doPost(HttpServletRequest request, HttpServletResponse response)35 throws ServletException, IOException {36 37 // 转码,建议使用过滤器转码38 request.setCharacterEncoding("utf-8");39 response.setCharacterEncoding("utf-8");40 response.setContentType("text/html;charset=utf-8");41 42 // 判断提交过来的表单是否为文件上传菜单,只适用于servlet43 boolean isMultipart = ServletFileUpload.isMultipartContent(request);44 45 if (isMultipart) {46 // 构造一个文件上传处理对象47 FileItemFactory factory = new DiskFileItemFactory();48 ServletFileUpload upload = new ServletFileUpload(factory);49 50 Iterator<FileItem> items;51 52 try {53 // 解析表单中提交的所有文件内容54 items = upload.parseRequest(request).iterator();55 56 while (items.hasNext()) {57 58 FileItem item = (FileItem) items.next();59 60 if (!item.isFormField()) {61 62 // 取出上传文件的文件名称63 String name = item.getName();64 65 // 取得上传文件以后的存储路径 66 String fileName = name.substring(67 name.lastIndexOf(‘\\‘) + 1, name.length());68 69 // 上传文件以后的存储路径 , 有关路径问题,请参考另一篇博文:http://www.cnblogs.com/xiaoMzjm/p/3878758.html70 String path = request.getServletContext().getRealPath("/")+"\\UpLoadFile"71 + File.separatorChar + fileName;72 73 // 上传文件74 File uploaderFile = new File(path);75 item.write(uploaderFile);76 77 // 打印上传成功信息78 PrintWriter out = response.getWriter();79 out.print("success");80 }81 }82 } catch (Exception e) {83 e.printStackTrace();84 }85 }86 }87 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。