关于Commons-fileupload的上传组件.doc_第1页
关于Commons-fileupload的上传组件.doc_第2页
关于Commons-fileupload的上传组件.doc_第3页
关于Commons-fileupload的上传组件.doc_第4页
关于Commons-fileupload的上传组件.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于Commons-fileupload的上传组件Apache的上传组件其它已经被封装到Struts那中去了,我在网上找到了一些文章介绍它是如何上传文件的,自己跟了一下源码也写了一个上传的实例,仅供参考!一、JSP页面如下:Html代码 1 3 4 5 6 7 8 9 10 11 12 13 下载 二、上传的Servlet如下:Java代码 14 /* 15 * Apache组件上传 16 * 17 * author 18 * date 2010-10-30 19 */ 20 public class UploadServlet extends HttpServlet 21 22 private static final long serialVersionUID = 5827821285414610443L; 23 24 public void doGet(HttpServletRequest request, HttpServletResponse response) 25 throws ServletException, IOException 26 this.doPost(request, response); 27 28 29 public void doPost(HttpServletRequest request, HttpServletResponse response) 30 throws ServletException, IOException 31 / 上传文件目录 32 String uploadDir = this.getServletContext().getRealPath(/uploadDir); 33 DiskFileItemFactory factory = new DiskFileItemFactory(); 34 / 设置内存区块大小4KB 35 factory.setSizeThreshold(4 * 1024); 36 / 设置暂存容器,当上传文件大于设置的内存块大小时,用暂存容器做中转 37 factory.setRepository(new File(this.getServletContext().getRealPath( 38 /temp); 39 ServletFileUpload fileUpload = new ServletFileUpload(factory); 40 fileUpload.setSizeMax(1024 * 1024 * 100); 41 fileUpload.setFileSizeMax(1024 * 1024 * 10); 42 List fileItemList = null; 43 44 try 45 fileItemList = fileUpload.parseRequest(request); 46 catch (FileUploadException e) 47 e.printStackTrace(); 48 49 Iterator fileItemIterator = fileItemList.iterator(); 50 FileItem fileItem = null; 51 while (fileItemIterator.hasNext() 52 fileItem = fileItemIterator.next(); 53 / 普通文件框上传 54 if (fileItem.isFormField() 55 String filedName = fileItem.getFieldName(); 56 String filedValue = fileItem.getString(GBK);/ 编码格式 57 System.out.println(filedName);/ 文件框名称 58 System.out.println(filedValue);/ 文件的值 59 else 60 String filedName = fileItem.getFieldName();/ 文件上传框的名称 61 / 获取文件上传的文件名 62 String OriginalFileName = takeOutFileName(fileItem.getName(); 63 System.out.println(原始文件名:+OriginalFileName); 64 if (!.equals(OriginalFileName) 65 / 根据上传的文件名重新命名 66 String newFileName = getNewFileName(OriginalFileName); 67 System.out.println(重新名:+newFileName); 68 File writeToFile = new File(uploadDir + File.separator 69 + newFileName); 70 try 71 fileItem.write(writeToFile); 72 catch (Exception e) 73 e.printStackTrace(); 74 75 76 77 78 79 80 private String takeOutFileName(String filePath) 81 String fileName = filePath; 82 if (null != filePath & !.equals(filePath) 83 int port = filePath.lastIndexOf( + 1); 84 if(port != -1) 85 fileName = filePath.substring(port); 86 87 88 return fileName; 89 90 91 private String getNewFileName(String originalFileName) 92 StringBuffer newFileName = new StringBuffer(); 93 if (null != originalFileName & !.equals(originalFileName) 94 int port = originalFileName.lastIndexOf(.); 95 String type = ; 96 String fileName = ; 97 if (port != -1) 98 type = originalFileName.substring(port + 1); 99 fileName = originalFileName.substring(0, port); 100 else 101 fileName = originalFileName; 102 103 StringBuffer suffix = new StringBuffer(_); 104 suffix.append(Calendar.getInstance().getTimeInMillis(); 105 suffix.append(_); 106 suffix.append(new Random().nextInt(100); 107 newFileName.append(fileName); 108 newFileName.append(suffix); 109 newFileName.append(.); 110 newFileName.append(type); 111 112 return newFileName.toString(); 113 114 115 三、下载的Servlet如下:Java代码 116 /* 117 * Apache组件下载 118 * 119 * author 120 * date 2010-10-30 121 */ 122 public class DownLoadServlet extends HttpServlet 123 124 public void doGet(HttpServletRequest request, HttpServletResponse response) 125 throws ServletException, IOException 126 this.doPost(request, response); 127 128 129 public void doPost(HttpServletRequest request, HttpServletResponse response) 130 throws ServletException, IOException 131 String filePath = D:Tomcatapache-tomcat-6.0.26webappsApacheUploaduploadDir; 132 String fileName = 2010年10月安排2_1288447490125_56.txt; 133 String Originalname = 2010年10月安排2.txt; 134 response.setContentType(application/octet-stream); 135 String isoFileName = new String(Originalname.getBytes(GB2312), 136 ISO8859-1); 137 response.setHeader(Content-Disposition, attachment; filename= 138 + isoFileName); 139 ServletOutputStream out = response.getOutputStream(); 140 BufferedOutputStream bufferOut = new BufferedOutputStream(out); 141 FileInputStream inputStream = new FileInputStream(new File(filePath, 142 fileName); 143 BufferedInputStream bufferInput = new BufferedInputStream(inputStream); 144 byte buffer = new byte5 * 1024; 145 int length = 0; 146 while (length = bufferInput.read(buffer) != -1) 147 bufferOut.write(buffer, 0, length); 148 149 bufferInput.close(); 150 inputStream.close(); 151 bufferOut.close(); 152 out.close(); 153 154 155 Se

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论