jsp文件上传
支持多文件上传?
所需jar包?
1. commons-FileUpload 1.2 包?
2. commons-IO 1.3.1 包?
3. Commons-BeanUtils 1.8 包?
-----------------------------------upload.jsp-----------------------------------?
- <html>????
- <head>????
- <title>Jsp+Servlet?upload?file</title>????
- </head>????
- <body>????
- ??<form?action="uploadServlet"?method="POST"?enctype="multipart/form-data">????
- ????<input?type?="file"?name="file1"/><br/>????
- ????<input?type?="file"?name="file2"/><br/>????
- ????<input?type="submit"?value="Submit"?/><br/>????
- ????<input?type="reset"?/>????
- ??</form>????
- </body>????
- </html>??
??
--------------------------------------uploadServlet.java--------------------------------
- package?lee.util;???
- ??
- import?java.io.File;???
- import?java.io.FileOutputStream;???
- import?java.io.IOException;???
- import?java.io.InputStream;???
- import?java.io.OutputStream;???
- ??
- import?javax.servlet.ServletException;???
- import?javax.servlet.http.HttpServlet;???
- import?javax.servlet.http.HttpServletRequest;???
- import?javax.servlet.http.HttpServletResponse;???
- ??
- import?org.apache.commons.fileupload.FileItemIterator;???
- import?org.apache.commons.fileupload.FileItemStream;???
- import?org.apache.commons.fileupload.disk.DiskFileItemFactory;???
- import?org.apache.commons.fileupload.servlet.ServletFileUpload;???
- import?org.apache.commons.logging.Log;???
- import?org.apache.commons.logging.LogFactory;???
- ??
- ?
- ?
- ?
- ?
- ?
- ?
- ???
- public?class?UploadServlet?extends?HttpServlet?{???
- ??
- private?static?final?Log?log?=?LogFactory.getLog(UploadServlet.class);???
- ??
- @Override???
- protected?void?doGet(HttpServletRequest?req,?HttpServletResponse?resp)???
- throws?ServletException,?IOException?{???
- this.doPost(req,?resp);???
- }???
- ??
- @Override???
- protected?void?doPost(HttpServletRequest?request,???
- HttpServletResponse?response)?throws?ServletException,?IOException?{???
- try?{???
- String?fileName="";??
- ????String?savePath?=?this.getServletContext().getRealPath("/")+"UploadFiles\\";???
- ????File?saveDir?=?new?File(savePath);?????
- ????if(!saveDir.isDirectory())??
- ????????saveDir.mkdir();?????
- if?(ServletFileUpload.isMultipartContent(request))?{???
- DiskFileItemFactory?dff?=?new?DiskFileItemFactory();??
- dff.setSizeThreshold(1024000);??
- ServletFileUpload?sfu?=?new?ServletFileUpload(dff);??
- sfu.setFileSizeMax(5000000);??
- sfu.setSizeMax(20000000);??
- FileItemIterator?fii?=?sfu.getItemIterator(request);??
- ??
- while?(fii.hasNext())?{???
- FileItemStream?fis?=?fii.next();??
- if?(!fis.isFormField()?&&?fis.getName().length()?>?0)?{??
- ??
- fileName?=?fis.getName().trim();???
- fileName=System.currentTimeMillis()+fileName.substring(fileName.lastIndexOf("."));???
- ??
- InputStream?stream=fis.openStream();???
- ??
- OutputStream?bos=new?FileOutputStream(savePath+fileName);???
- int?bytesRead?=?0;???
- byte[]?buffer?=?new?byte[8192];???
- while?((bytesRead?=?stream.read(buffer,?0,?8192))?!=?-1){???
- bos.write(buffer,?0,?bytesRead);??
- }???
- bos.close();???
- stream.close();???
- }???
- }???
- response.getWriter().println("File?upload?successfully!!!");??
- }???
- }?catch?(Exception?e)?{???
- log.error("#ERROR#:上传附件发生错误,请检查!",e);???
- e.printStackTrace();???
- }???
- ??
- }???
- }???
?
-----------------------------------web.xml-----------------------------------
- <servlet>???
- <servlet-name>uploadServlet</servlet-name>???
- <servlet-class>lee.util.UploadServlet</servlet-class>???
- </servlet>???
- <servlet-mapping>???
- <servlet-name>uploadServlet</servlet-name>???
- <url-pattern>/uploadServlet</url-pattern>???
- </servlet-mapping>