文件上传
-
创建一个空项目
-
新建一个web application 的Module
-
创建一个lib目录导入需要用的jar包
- commons-io
- commons-fileupload
-
将lib包添加到项目依赖(右键 Add as Library)
-
编写文件上传表单
<%--通过表单上传文件 get : 上传文件大小有限制 post : 上传文件大小没有限制 上传文件必须要enctype="multipart/form-data" --%> <form action="${pageContext.request.contextPath}/upload.do" method="post" enctype="multipart/form-data"> <p>上传用户:<input type="text" name="username"></p> <p><input type="file" name="file1"></p> <p><input type="submit"> | <input type="reset"></p> </form>
-
编写Servlet
public class FileServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //判断上传的表单是普通表单还是带文件表单 if (!ServletFileUpload.isMultipartContent(request)){ //如果不是带文件表单 return;//终止方法运行,直接返回 } try { //创建上传文件的保存路径,建议在WEB-INF路径下,安全,用户无法直接访问上传的文件. String uploadPath = this.getServletContext().getRealPath("/WEB-INF/upload"); File uploadFile = new File(uploadPath); if (!uploadFile.exists()){ uploadFile.mkdirs();//如果不存在则创建目录 } //缓存,临时文件 //临时文件,假如文件超出预期大小,就把它放到临时文件夹中,过几天自动删除,或者提醒用户转存为永久文件 String tmpPath = this.getServletContext()