上传文件
1.上传文件原理
2.使用fileupload的jar包代码实现
1 String tempPath = this.getServletContext().getRealPath("temp"); 2 DiskFileItemFactory factory=new DiskFileItemFactory(1024*1024,new File(tempPath)); 3 4 ServletFileUpload upload=new ServletFileUpload(factory); 5 upload.setHeaderEncoding("utf-8"); 6 try { 7 @SuppressWarnings("unchecked") 8 List<FileItem> items = upload.parseRequest(request); 9 if(items!=null){ 10 for (FileItem fileItem : items) { 11 if(fileItem.isFormField()){ 12 String fieldName = fileItem.getFieldName(); 13 String value = fileItem.getString("utf-8"); 14 System.out.println(fieldName+"----->"+value); 15 }else{ 16 String fileName = fileItem.getName(); 17 InputStream in = fileItem.getInputStream(); 18 StringBuilder filePath=new StringBuilder(this.getServletContext().getRealPath("upload")); 19 filePath.append("/").append(new Date().getTime()).append(fileName.substring(fileName.lastIndexOf("."))); 20 OutputStream out=new FileOutputStream(filePath.toString()); 21 byte[] b=new byte[1024]; 22 int len=0; 23 while((len=in.read(b))!=-1){ 24 out.write(b, 0, len); 25 } 26 out.close(); 27 in.close(); 28 fileItem.delete(); 29 } 30 } 31 } 32 } catch (FileUploadException e) { 33 // TODO Auto-generated catch block 34 e.printStackTrace(); 35 }