前言
Javaweb实现文件上传
准备工作
将commons-io-2.4.jar
、commons-fileupload-1.2.2.jar
放到项目的/WebContent/WEB-INF/lib
目录下
- 在项目的
/WebContent
目录下新建用于存放上传的文件的目录file
前端页面代码
- 在
/WebContent
目录下新建upload.html
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1 align="center">文件上传</h1><br> <form action="upload" method="post" enctype="multipart/form-data"> <input type="file" name="myfile"><br> <input type="submit" value="上传"> </form> </body> </html>
|
Servlet代码
- 在包下新建
UploadServlet.java
,访问路径修改为/upload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| package io.github.feiju12138;
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream;
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.FileUploadException; import org.apache.commons.fileupload.servlet.ServletFileUpload;
public class Upload extends HttpServlet { private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { InputStream is = null; FileOutputStream fos = null; ServletFileUpload upload = new ServletFileUpload(); try { FileItemIterator iterator = upload.getItemIterator(req); while(iterator.hasNext()) { FileItemStream fis = iterator.next(); is = fis.openStream(); String path = this.getServletContext().getRealPath("file"); path += "/" + fis.getName(); fos = new FileOutputStream(path); byte buf[] = new byte[1024]; int len = 0; while((len = is.read(buf)) > 0) { fos.write(buf, 0, len); } } } catch (FileUploadException e) { e.printStackTrace(); } finally { if(fos != null) { fos.close(); } if(is != null) { is.close(); } } } }
|
完成
参考文献
达内教育