apache 提供上传 DiskFileItemFactory ServletFileUpload

apache 提供上传 DiskFileItemFactory ServletFileUpload 1、代码:publicMap<String,String>fileUpload(HttpServletRequestrequest,finalStringuploadPath){ log.debug("executefileUploadmethod."); try{ DiskFileItemFactoryfactory=n…

 

1、代码:

public Map<String, String> fileUpload(HttpServletRequest request,final String uploadPath) {
		log.debug("execute fileUpload method.");
		try {
			DiskFileItemFactory factory = new DiskFileItemFactory();
			ServletFileUpload upload = new ServletFileUpload(factory);
			upload.setHeaderEncoding("UTF-8");
			List items = upload.parseRequest(request);// 上传文件解析
			Iterator itr = items.iterator();// 枚举方法
			while (itr.hasNext()) {
				FileItem item = (FileItem) itr.next();
				if (!item.isFormField()) {// 判断是文件还是文本信息
					if (!"".equals(item.getName())) {// 判断是否选择了文件
						// log.info("上传文件的大小:" + item.getSize());
						// log.info("上传文件的类型:" + item.getContentType());
						// item.getName()返回上传文件在客户端的完整路径名称
						// log.info("上传文件的名称:" + item.getName());
						// 此时文件暂存在服务器的内存当中
						// log.info("filePath:=====" + filePath);
						File file = new File(uploadPath,item.getName());
						// 获取根目录对应的真实物理路径
						HashMap<String, String> hm = new HashMap();
						hm.put("FileSize", String.valueOf(item.getSize()));
						item.write(file);// 保存文件在服务器的物理磁盘中
						hm.put("FileType", item.getContentType());
						String OldFileName = item.getName();
						if (OldFileName.indexOf("\\") != -1)
							hm.put("OldFileName",
									OldFileName.substring(OldFileName.lastIndexOf("\\") + 1));
						else
							hm.put("OldFileName", OldFileName);
						hm.put("FileName", item.getName());
						fileMap.put(item.getFieldName(), hm);
					}
				} else {
					if (map.containsKey(item.getFieldName())) {
						map.put(item.getFieldName(),
								map.get(item.getFieldName()) + "," + item.getString("UTF-8"));
					} else {
						map.put(item.getFieldName(), item.getString("UTF-8"));// 表单中其他信息添加到Map中
					}
				}
			}
			return map;
		} catch (Exception e) {
			log.error(e);
			e.printStackTrace();
			return null;
		}
	}

 2.调用

Map<String, String> sqlMap = fu.fileUpload(request, filePath);
		StruObject struObject = new StruObject();
		if(fu.getFileMap() != null && fu.getFileMap().get("file") != null){
			String fileName = fu.getFileMap().get("file").get("FileName");
			struObject.setFileName(dateStr + fileName);
		}
		struObject.setStruId(sqlMap.get("struId"));
		struObject.setLoadRate(sqlMap.get("loadRate"));
		struObject.setRemark(sqlMap.get("remark"));
		struObject.setLoadType(sqlMap.get("loadType"));
		struObject.setProcedureName(sqlMap.get("procedureName"));
		struObject.setFilePath(datasqlPath + File.separator);
		struService.updateStru(struObject);

此时注意事项:1.表单中所有参数都在sqlMap中,request.getParameter是null 2.spring mvc中<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">一定要去掉,加上会将request对象转换

 

今天的文章apache 提供上传 DiskFileItemFactory ServletFileUpload分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/13123.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注