servlet文件上传源码
2013-01-20 22:41
411 查看
1、需要两个Jar包分别是commons-io-1.4.jar,commons-fileupload-1.2.1.jar。
2、还需要在根目录下新建一个文件夹uploads,用于保存上传后文件。
3、下面是上传Servlet类源码:
2、还需要在根目录下新建一个文件夹uploads,用于保存上传后文件。
3、下面是上传Servlet类源码:
import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; import org.apache.commons.fileupload.*; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class UploadServlet extends HttpServlet { private static final long serialVersionUID = -2201219701121037194L; private String savePath; private ServletContext sc; public void init(ServletConfig config) { savePath = config.getInitParameter("savePath"); sc = config.getServletContext(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List items = upload.parseRequest(request);// 上传文件解析 Iterator itr = items.iterator();// 枚举方法 while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); if (item.isFormField()) {// 判断是文件还是文本信息 System.out.println("表单参数名:" + item.getFieldName() + ",表单参数值:" + item.getString("UTF-8")); } else { if (item.getName() != null && !item.getName().equals("")) {// 判断是否选择了文件 System.out.println("上传文件的大小:" + item.getSize()); System.out.println("上传文件的类型:" + item.getContentType()); // item.getName()返回上传文件在客户端的完整路径名称 System.out.println("上传文件的名称:" + item.getName()); // 此时文件暂存在服务器的内存当中 File tempFile = new File(item.getName());// 构造临时对象 File file = new File(sc.getRealPath("/") + savePath, tempFile.getName()); // 获取根目录对应的真实物理路径 item.write(file);// 保存文件在服务器的物理磁盘中 request.setAttribute("upload.message", "上传文件成功!");// 返回上传结果 } else { request.setAttribute("upload.message", "没有选择上传文件!"); } } } } catch (Exception e) { e.printStackTrace(); request.setAttribute("upload.message", "上传文件失败!"); } request.getRequestDispatcher("/uploadResult.jsp").forward(request, response); } }
相关文章推荐
- Servlet上传文件源码,不用控件,帮助你理解
- Servlet上传文件源码理解,不用控件,帮助你理解 (对请求头的解析)
- Spring MVC 4使用Servlet 3 MultiPartConfigElement实现文件上传(带源码)
- 有进度条的java,action,servlet,jsp大文件上传
- servlet 通过 FileItem 实现多文件上传
- Servlet方式文件上传
- servlet + JSP+ mysql实现文件的上传
- PHP文件上传源码分析(RFC1867)
- JSP利用servlet上传文件时的中文乱码问题
- Servlet 中上传文件,前4个文件正确上传,后面文件上传时报目录访问拒绝
- asp.net大文件分块上传与进度显示,完整项目源码
- Spring 文件上传 MultipartHttpServletRequest
- 简单好用的大文件上传Demo源码
- Servlet实现文件上传,可多文件上传
- Servlet处理文件上传
- 文件的上传servlet
- servlet上传文件
- servlet上传文件500异常
- Spring中MultipartHttpServletRequest实现文件上传
- Servlet 文件上传