WEB文件上传之apache common upload使用(一)

页面控件(flash/html5/activeX/applet) + RFC1897规范 + http协议上传

页面控件(flash/html5/activeX/applet) + 自定义数据规范 + http协议上传

页面控件(flash/html5/activeX/applet) + FTP协议上传

页面控件(flash/html5/activeX/applet) + 自定义协议

用apache common upload组件实际就是采用的“页面表单 + RFC1897规范 + http协议上传”实现方式,需要实现的技术点:

1. 多文件数据的提交

2. 文件数据包接收存储功能

3. 文件数据上传进度

4. WEB页面无刷新异步提交

时序图:

  • 文件上传时序图

  • 文件上传进度获取时序图

实现思路:

1. 多文件数据的提交

在WEB页面采用多个利用form表单进行文件提交

2. 文件数据包接收存储功能

服务端采用servlet,利用apache common upload组件接收解析数据包,接收解析的过程中保存进度到session, 文件接收完毕后保存到指定目录

3. 文件数据上传进度

在WEB页面在界面写一个定时器,定时访问服务器提供上传进度获取功能的servlet,获取文件上传进度信息

4. WEB页面无刷新异步提交

利用iframe来实现WEB页面无刷新异步上传

关键代码:

UploadFileServlet.java

Java代码

收藏代码

  1. package com.test.servlet;

  2. import java.io.File;

  3. import java.io.IOException;

  4. import java.io.Writer;

  5. import java.util.Iterator;

  6. import java.util.List;

  7. import javax.servlet.ServletException;

  8. import javax.servlet.http.HttpServlet;

  9. import javax.servlet.http.HttpServletRequest;

  10. import javax.servlet.http.HttpServletResponse;

  11. import org.apache.commons.fileupload.FileItem;

  12. import org.apache.commons.fileupload.FileUploadBase.FileSizeLimitExceededException;

  13. import org.apache.commons.fileupload.disk.DiskFileItemFactory;

  14. import org.apache.commons.fileupload.servlet.FileCleanerCleanup;

  15. import org.apache.commons.fileupload.servlet.ServletFileUpload;

  16. import org.apache.commons.io.FileCleaningTracker;

  17. import org.apache.commons.io.FileUtils;

  18. import org.apache.commons.io.FilenameUtils;

  19. import org.apache.commons.

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值