日期:2014-05-16  浏览次数:20453 次

常见的几种jsp和struts中文件上传方法总结

使用FileUpload组件上传文件

文件上传在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件上传功能。
common-fileupload组件是apache的一个开源项目之一,可以从http://jakarta.apache.org/commons/fileupload/下载。用该组件可实现一次上传一个或多个文件,并可限制文件大小。
下载后解压zip包,将commons-fileupload-1.0.jar复制到tomcat的webapps\你的webapp\WEB-INF\lib\下,目录不存在请自建目录。
新建一个servlet: Upload.java用于文件上传:


Java代码 复制代码
  1. public?class?Upload?extends?HttpServlet?{ ??
  2. ??
  3. ????private?String?uploadPath?=?"C:\\upload\\";?//?上传文件的目录 ??
  4. ????private?String?tempPath?=?"C:\\upload\\tmp\\";?//?临时文件目录 ??
  5. ??
  6. ????public?void?doPost(HttpServletRequest?request, ??
  7. ????HttpServletResponse?response) ??
  8. ????throws?IOException,?ServletException ??
  9. ????{ ??
  10. ????} ??
  11. } ??
  12. 在doPost()方法中,当servlet收到浏览器发出的Post请求后,实现文件上传。以下是示例代码: ??
  13. public?void?doPost(HttpServletRequest?request, ??
  14. HttpServletResponse?response) ??
  15. throws?IOException,?ServletException ??
  16. { ??
  17. ????try?{ ??
  18. ????????DiskFileUpload?fu?=?new?DiskFileUpload(); ??
  19. ????????//?设置最大文件尺寸,这里是4MB ??
  20. ????????fu.setSizeMax(4194304); ??
  21. ????????//?设置缓冲区大小,这里是4kb ??
  22. ????????fu.setSizeThreshold(4096); ??
  23. ????????//?设置临时目录: ??
  24. ????????fu.setRepositoryPath(tempPath); ??
  25. ??
  26. ????????//?得到所有的文件: