javaweb基础----文件上传
导入这两个包:
commons-fileupload-1.3.1.jar,commons-io-2.4.jar(版本不用完全一样)
文件上传
jsp页面
1 <body> 2 <!-- 上传文件三要素: 3 1.输入框input type设置为file 4 2.表单提交方式为post 5 3.表单enctype属性设置为:multipart/form-data --> 6 <form action="${root }/upload1" enctype="multipart/form-data" method="post"> 7 文件描述:<input type="text" name="desc"/><br> 8 <input type="file" name="upload"/><br> 9 <input type="submit" name="submit" value="上传"/> 10 </form> 11 </body>
servlet书写
1 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 2 request.setCharacterEncoding("utf-8"); 3 //1.获取磁盘文件项工厂 4 DiskFileItemFactory factory = new DiskFileItemFactory(); 5 //2.装配到ServletFileUpload中 6 ServletFileUpload fileUpload =new ServletFileUpload(factory); 7 //设置文件项编码 8 fileUpload.setHeaderEncoding("utf-8"); 9 //3.解析request请求 10 try { 11 List<FileItem> list = fileUpload.parseRequest(request); 12 //4.遍历文件项,判断文件项的类型 13 for (FileItem fileItem : list) { 14 if(fileItem.isFormField()) { 15 //普通文件项 16 String fieldName = fileItem.getFieldName(); 17 String fileValue = fileItem.getString(); 18 System.out.println(fieldName+"的值为:"+fileValue); 19 }else { 20 //上传文件项 21 String fileName = fileItem.getName(); 22 System.out.println(fileName); 23 //获取上传文件路径 24 String realPath = this.getServletContext().getRealPath("/upload"); 25 System.out.println(realPath); 26 File file = new File(realPath, fileName); 27 //向指定位置输上传文件 28 fileItem.write(file); 29 } 30 } 31 32 } catch (FileUploadException e) { 33 // TODO Auto-generated catch block 34 e.printStackTrace(); 35 } catch (Exception e) { 36 // TODO Auto-generated catch block 37 e.printStackTrace(); 38 } 39 }
先想再做,不想不做。
浙公网安备 33010602011771号