文件上传
说明:
文件上传流程
:把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()