`

Common FileUpload组件的使用!(源码)

阅读更多

今天搞了一下文件上传功能组件Common FileUpload。

需要两个Jar包分别是commons-io-1.4.jar,commons-fileupload-1.2.1.jar。点击下载

只需要写一个上传类UploadServlet.java,还需要两个Jsp界面,分别负责上传文件和输出上传是否成功。

还需要在根目录下新建一个文件夹uploads,用于保存上传后文件。

下面是上传Servlet类源码:

  1. packagecom.sy.web;
  2. importjava.io.*;
  3. importjava.util.*;
  4. importjavax.servlet.*;
  5. importjavax.servlet.http.*;
  6. importorg.apache.commons.fileupload.*;
  7. importorg.apache.commons.fileupload.disk.DiskFileItemFactory;
  8. importorg.apache.commons.fileupload.servlet.ServletFileUpload;
  9. publicclassUploadServletextendsHttpServlet{
  10. privatestaticfinallongserialVersionUID=-2201219701121037194L;
  11. privateStringsavePath;
  12. privateServletContextsc;
  13. publicvoidinit(ServletConfigconfig){
  14. savePath=config.getInitParameter("savePath");
  15. sc=config.getServletContext();
  16. }
  17. publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
  18. throwsServletException,IOException{
  19. doPost(request,response);
  20. }
  21. publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)
  22. throwsServletException,IOException{
  23. request.setCharacterEncoding("UTF-8");
  24. DiskFileItemFactoryfactory=newDiskFileItemFactory();
  25. ServletFileUploadupload=newServletFileUpload(factory);
  26. try{
  27. Listitems=upload.parseRequest(request);//上传文件解析
  28. Iteratoritr=items.iterator();//枚举方法
  29. while(itr.hasNext()){
  30. FileItemitem=(FileItem)itr.next();
  31. if(item.isFormField()){//判断是文件还是文本信息
  32. System.out.println("表单参数名:"+item.getFieldName()
  33. +",表单参数值:"+item.getString("UTF-8"));
  34. }else{
  35. if(item.getName()!=null&&!item.getName().equals("")){//判断是否选择了文件
  36. System.out.println("上传文件的大小:"+item.getSize());
  37. System.out.println("上传文件的类型:"+item.getContentType());
  38. //item.getName()返回上传文件在客户端的完整路径名称
  39. System.out.println("上传文件的名称:"+item.getName());
  40. //此时文件暂存在服务器的内存当中
  41. FiletempFile=newFile(item.getName());//构造临时对象
  42. Filefile=newFile(sc.getRealPath("/")+savePath,
  43. tempFile.getName());
  44. //获取根目录对应的真实物理路径
  45. item.write(file);//保存文件在服务器的物理磁盘中
  46. request.setAttribute("upload.message","上传文件成功!");//返回上传结果
  47. }else{
  48. request.setAttribute("upload.message","没有选择上传文件!");
  49. }
  50. }
  51. }
  52. }catch(Exceptione){
  53. e.printStackTrace();
  54. request.setAttribute("upload.message","上传文件失败!");
  55. }
  56. request.getRequestDispatcher("/uploadResult.jsp").forward(request,
  57. response);
  58. }
  59. }

分享到:
评论

相关推荐

    利用Common-fileupload封装的文件上传组件...附上源码.

    首先,我们来看一下标题:“利用Common-fileupload封装的文件上传组件...附上源码”。这表明我们将讨论如何使用这个库来创建一个文件上传系统,并且提供有源码可供参考。通过`Common-fileupload`,我们可以实现用户...

    利用commons-fileupload组件实现文件上传-实例

    通过以上步骤,我们就使用Apache Commons FileUpload组件实现了一个基本的文件上传功能。你可以根据自己的需求对这个示例进行扩展,比如添加错误处理、文件类型检查和存储优化等。参考提供的博文链接,可以获取更多...

    commons-fileupload文件上传组件中文教程--张孝祥写的

    - 创建`lib`目录,并下载Apache Commons FileUpload组件(版本1.0),解压后将`commons-fileupload-1.0.jar`放入`lib`目录。 - 创建`src`目录用于存放Java源代码,并编写`compile.bat`批处理文件以便于编译Java...

    commons-fileupload-1.3.2-src 源码

    10. **与其他Apache Commons库的集成**:Apache Commons FileUpload经常与另一个Apache Commons组件——Commons IO一起使用,共同处理文件I/O操作,例如读取和写入文件。 通过分析"commons-fileupload-1.3.2-src...

    commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar

    标题中的"commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar"提到了Apache Commons FileUpload的1.3.3版本的库及其源码。Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的多部分...

    commons-fileupload文档及源代码.rar

    `common_fileupload详解.doc`文档应该提供了关于库的详细使用指南、API参考和示例代码。通过阅读文档,你可以快速掌握如何在项目中集成和使用`commons-fileupload`。 总的来说,Apache Commons FileUpload库极大地...

    Commons-io-fileload源码和组件

    在这个主题中,我们将深入探讨其中的两个关键组件:`Commons-IO` 和 `Commons-Fileupload`,以及它们的源码分析。 **Apache Commons IO** `Commons-IO` 是一组与I/O相关的实用工具类,它弥补了Java标准库中对输入/...

    apache-commons源码及jar文件

    Commons-Discovery 提供工具来定位资源 (包括类) ,通过使用各种模式来映射服务/引用名称和资源名称。. EL Commons-EL 提供在JSP2.0规范中定义的EL表达式的解释器. FileUpload FileUpload 使得在你可以在应用和...

    Jsp文件上传下载(工具类源码)

    commons-fileupload-1.2.1实现文件上传 需导入commons-fileupload-1.2.1.jar和 commons-io-1.3.2.jar upload2.jsp *" pageEncoding="gb2312"%> <!DOCTYPE ...

    t淘淘商城项目 商城项目 视频和源码教程 详细

    |--taotao-common --- 通用组件、工具类 |--taotao-manage -- 后台系统  |--com.taotao.manage.web  |--com.taotao.manage.service  |--com.taotao.manage.mapper  |--com.taotao.manage.pojo 3.4. 创建...

    apache.commons所有jar包

    描述中的"包括源码和API"意味着这些JAR包不仅包含了编译后的类库,还提供了源代码供开发者学习和调试,以及API文档帮助理解每个组件的使用方法和功能。 以下是压缩包子文件所对应的Apache Commons组件及其主要功能...

    爱雪儿无组件上传类 v1.0

    在ASP环境中,文件上传通常需要借助于服务器端的组件,例如Common Files的FileUpload控件,但这类组件可能需要特定的服务器配置或购买。爱雪儿无组件上传类的出现,解决了这一问题,它使得开发者在没有额外组件的...

Global site tag (gtag.js) - Google Analytics