看了个视频 有apache组织提供的commons-fileupload ,实现上传 jsp页面,web.xml省略 servlet package com.xie.fileupload; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUpload extends HttpServlet ... { @SuppressWarnings("unchecked") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException ...{ DiskFileItemFactory factory = new DiskFileItemFactory(); String path = request.getRealPath("/upload"); factory.setRepository(new File(path)); factory.setSizeThreshold(1024 * 1024); ServletFileUpload upload = new ServletFileUpload(factory); try ...{ List<FileItem> list = upload.parseRequest(request); for (FileItem fileItem : list) ...{ // 如果是表单信息 if (fileItem.isFormField()) ...{ String name = fileItem.getFieldName();// 获得表单中的名字 String value = fileItem.getString("gbk"); request.setAttribute(name, value); } else ...{ String name = fileItem.getFieldName(); String value = fileItem.getName();// 获得从浏览器中取得的文件名字 int start = value.lastIndexOf("/"); String fileName = value.substring(start + 1); // 由于不同的浏览器可能取得的文件的名字不同,有的浏览器将整个路径取道,有的浏览器只取到文件名 request.setAttribute(name, fileName);// 形如c:document.....txt和1.txt这两种形式,因此需要做次操作 // 使用io进行文件的上传 /**//* * OutputStream os = new FileOutputStream(new * File(path,fileName)); * * InputStream in = fileItem.getInputStream(); * * byte[] buffer = new byte[400]; * * int length = 0 ; * * while((length - in.read(buffer))>0) { os.write(buffer, 0, * length); } * * os.close(); in.close(); */ // 使用fileupload提供的上传 try ...{ fileItem.write(new File(path, fileName)); } catch (Exception e) ...{ e.printStackTrace(); } } } } catch (FileUploadException e) ...{ e.printStackTrace(); } request.getRequestDispatcher("/fileUpload/success.jsp").forward( request, response); }}