JavaWeb文件上传下载,使用fileupload组件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb文件上传下载,使用fileupload组件相关的知识,希望对你有一定的参考价值。
一、引入jar包
1. commons-fileupload-1.2.1.jar
2. commons-io-1.4.jar
二、文件上传
1. html代码
1 <form name="upload_test" action="${pageContext.request.contextPath}/FileServlet?method=upload" method="post" enctype="multipart/form-data"> 2 用户名: <input type="text" name="userName" > <br> 3 文件: <input type="file" name="fileName" > <br> 4 <input type="submit" value="上传" > 5 </form>
2. java代码
1 private void upload(HttpServletRequest request, HttpServletResponse response) 2 throws ServletException, IOException { 3 String uri = null; 4 try { 5 //文件上传工厂 6 FileItemFactory factory = new DiskFileItemFactory(); 7 //文件上传核心工具类 8 ServletFileUpload upload = new ServletFileUpload(factory); 9 /******设置大小限制参数******/ 10 // 单个文件大小限制 11 upload.setFileSizeMax(10*1024*1024); 12 // 总文件大小限制 13 upload.setSizeMax(50*1024*1024); 14 // 对中文文件编码处理 15 upload.setHeaderEncoding("UTF-8"); 16 //判断: 当前表单是否为文件上传表单 17 if(upload.isMultipartContent(request)){ 18 //把请求数据转换为一个FileItem对象,再用集合封装 19 List<FileItem> list = upload.parseRequest(request); 20 // 遍历: 得到每一个上传的数据 21 for (FileItem item : list) { 22 // 判断类型(true:普通表单 || false:上传表单) 23 if(item.isFormField()){ 24 //获取名称 25 String name = item.getFieldName(); 26 //获取值 27 String value = item.getString(); 28 //打印内容 29 System.out.println("name: " + name + "\tvalue: " + value); 30 } else { 31 /*****上传表单*****/ 32 //获取文件名称 33 String name = item.getName(); 34 // ----处理上传文件名重名问题---- 35 //获取一个36位的uuid字符串 36 String id = UUID.randomUUID().toString(); 37 //拼接文件名 38 name = id + "#" + name; 39 //得到上传目录 40 String basePath = getServletContext().getRealPath("upload"); 41 System.out.println("basePath: " + basePath); 42 //创建要上传的文件对象 43 File file = new File(basePath, name); 44 //上传 45 item.write(file); 46 // 删除组件运行时产生的临时文件 47 item.delete(); 48 } 49 } 50 } else { 51 System.out.println("不是上传表单"); 52 } 53 54 uri = "/success.jsp"; 55 } catch (FileUploadException e) { 56 e.printStackTrace(); 57 uri = "/error/error.jsp"; 58 } catch (Exception e) { 59 e.printStackTrace(); 60 uri = "/error/error.jsp"; 61 } finally { 62 request.getRequestDispatcher(uri).forward(request, response); 63 } 64 }
三、文件下载
------------------挖坑待填----------
以上是关于JavaWeb文件上传下载,使用fileupload组件的主要内容,如果未能解决你的问题,请参考以下文章