Java使用Commons-FileUpload组件实现文件上传最佳方案
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java使用Commons-FileUpload组件实现文件上传最佳方案,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3900字,纯文字阅读大概需要6分钟。
内容图文
- method方法必须是POST,不能是GET
- 新加一个属性enctype,值为”multipart/form-data”
- 文件表单项<input>的类型为file,即type=”file”
import org.apache.commons.fileupload.FileItem; import java.util.HashMap; import java.util.Map; public class ParamDto { private Map<String,String> paramMap; private Map<String,FileItem> fileMap; public ParamDto() { paramMap = new HashMap<>(); fileMap = new HashMap<>(); } public Map<String, String> getParamMap() { return paramMap; } publicvoid setParamMap(Map<String, String> paramMap) { this.paramMap = paramMap; } public Map<String, FileItem> getFileMap() { return fileMap; } publicvoid setFileMap(Map<String, FileItem> fileMap) { this.fileMap = fileMap; } }
import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.imooc.dto.ParamDto; import javax.servlet.http.HttpServletRequest; import java.io.File; import java.util.List; public class RequestUtil { /** * 从request流中解析参数与上传的文件 * @param request */ public static ParamDto parseParam(HttpServletRequest request) { ParamDto result = new ParamDto(); //创建一个FileItem工厂 通过DiskFileItemFactory对象创建文件上传核心组件 ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory()); upload.setHeaderEncoding("UTF-8"); try { //通过文件上传核心组件解析request请求,获取到所有的FileItem对象 List<FileItem> fileItemList = upload.parseRequest(request); //遍历表单的所有表单项(FileItem) 并对其进行相关操作for(FileItem fileItem : fileItemList) { //判断这个表单项如果是一个普通的表单项if(fileItem.isFormField()) { result.getParamMap().put(fileItem.getFieldName(),fileItem.getString("UTF-8")); //如果不是表单的普通文本域,就是 } else { result.getFileMap().put(fileItem.getFieldName(),fileItem); } } } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return result; } }
import org.apache.commons.fileupload.FileItem; import java.io.File; public class FileUtil { /** * 上传文件的保存路径 */ public static final String SAVE_PATH = "d:/upload/"; /** * 保存上传的文件 * @param fileItem * @param path * @return * @throws Exception */publicstatic String save(FileItem fileItem,String path) throws Exception { String fileName = System.currentTimeMillis() + "_" + fileItem.getName(); fileItem.write(new File(path + fileName)); return fileName; } }
好啦~ 有空我们再来看看原始的文件上传方式
原文:https://www.cnblogs.com/jimisun/p/9419269.html
内容总结
以上是互联网集市为您收集整理的Java使用Commons-FileUpload组件实现文件上传最佳方案全部内容,希望文章能够帮你解决Java使用Commons-FileUpload组件实现文件上传最佳方案所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。