实现文件上传改变临时文件存储位置

本文详细介绍了Java文件上传过程中如何利用Apache的common-fileupload组件,特别是通过DiskFileItemFactory设置文件上传的内存和磁盘临界值,以及自定义临时文件存储位置。内容包括DiskFileItemFactory的构造、方法以及文件上传的流程。
摘要由CSDN通过智能技术生成

文件上传
说明:
文件上传流程
:把request对象封装成fileitem对象存于磁盘或内存,获取ftp服务器地址和端口号,用storeFile方法将字节流写到服务器,服务器反序列化为文件
文件上传——getUploadFileInfo()
将文件信息封装成单独的DiskFileItem对象

对于文件上传,上传的过程中是将文件以字节流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件
public static Object[] getUploadFileInfo(HttpServletRequest request) throws Exception {
Object[] obj = new Object[2];
//获取会话
HttpSession session = request.getSession();
try {
创建一个ApacheFileUploadListener监听器
ApacheFileUploadListener e = new ApacheFileUploadListener((long)request.getContentLength());
设置文件上传状态
session.setAttribute(“FILE_UPLOAD_STATS”, e.getFileUploadStats());
设置文件状态未上传完成
session.setAttribute(“FILE_UPLOAD_FINISH”, “N”);
//1、创建一个DiskFileItemFactory工厂
MonitoredDiskFileItemFactory msg1 = new MonitoredDiskFileItemFactory(e);
//2、创建一个文件上传解析器
ServletFileUpload upload = new ServletFileUpload(msg1);
4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List集合,每一个FileItem对应一个Form表单的输入项
List items = upload.parseRequest(request);
ArrayList FileLists = new ArrayList();
HashMap ParamMap = new HashMap();
Iterator i = items.iterator()

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值