- 浏览: 121682 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zdb_cn:
终于知道怎么搞了,3q
SecureCRT for Mac密码不能保存解决方法 -
eisenwolf:
很实用~~
使用StringWriter获取异常内容 -
yanxiaojia521:
中国凉茶 写道TaskDemo 不用在xml配置文件中配置关 ...
Spring(3.X) Task 定时任务 -
中国凉茶:
TaskDemo 不用在xml配置文件中配置关联下一下么?
Spring(3.X) Task 定时任务 -
yanxiaojia521:
ives 写道一看就是小菜鸟啊是啊是啊。呵呵。
Java使用Base64编码处理图片转String(方便传输)使用
支持jar:
commons-fileupload-1.3.jar、
commons-io-2.4.jar
commons-fileupload-1.3.jar、
commons-io-2.4.jar
/** * @title: FileDm.java * @develop: YanXiaojia R&D * @description: 文件上传实体。 * @author: YanXiaojia * @version: 1.00 */ public class FileDm { /** * 文件名称 */ private String fileName ; /** * 文件类型 */ private String fileType ; /** * 允许上传的文件类型 */ private String[] fileTypes ; /** * 文件上传保存路径 */ private String filePath ; /** * <p>是否验证isMultiPart</p> * 默认不使用, 即 isMultiPart = false. */ private Boolean isMultiPart = false; /** * <p>是否使用虚拟目录</p> * 默认不使用, 即 isVirdir = false. */ private Boolean isVirdir = false ; /** * <p>缓冲区大小</p> * 默认1M, 即(1024 * 1024 * 1). */ private Integer sizeThreshold = (1024 * 1024 * 1); /** * <p>缓冲区目录</p> */ private File repository ; /** * <p>是否限制上传文件大小</p> * 默认不限制, 即isLimitSize = false. */ private Boolean isLimitSize = false; /** * <p>上传文件最大限制</p> * 默认10M, 即(1024 * 1024 * 10) */ private Integer sizeMax = (1024 * 1024 * 10); /** * <p>文件编码</p> * 默认UTF-8,即encoding = "UTF-8". */ private String encoding = "UTF-8"; /** * 处理文件后缀。 * @param fileName */ public void handleFileType(String fileName){ this.setFileType(fileName.substring(fileName.lastIndexOf(".") + 1)); } /** * 是否被限制上传的文件类型 * @param fileType * @return true:否 false:是 */ public Boolean isAllowFileType(String fileType){ for (int i = 0; i < this.getFileTypes().length; i++) { if(this.getFileTypes()[i].equals(fileType)){ return true; } } return false; } /** * 文件全名称(包含文件类型) * @return 文件全名称 */ public String getFileNameAll() { return this.getFileName() + "." + this.getFileType(); } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public String getFileType() { return fileType; } public void setFileType(String fileType) { this.fileType = fileType; } public String[] getFileTypes() { return fileTypes; } public void setFileTypes(String[] fileTypes) { this.fileTypes = fileTypes; } public String getFilePath() { return filePath; } public void setFilePath(String filePath) { this.filePath = filePath; } public Boolean getIsMultiPart() { return isMultiPart; } public void setIsMultiPart(Boolean isMultiPart) { this.isMultiPart = isMultiPart; } public Boolean getIsVirdir(){ return isVirdir; } public void setIsVirdir(Boolean isVirdir){ this.isVirdir = isVirdir; } public Integer getSizeThreshold() { if (!this.getIsVirdir()) { throw new IllegalStateException("isVirdir not set to true, sizeThreshold not operate."); } return sizeThreshold; } public void setSizeThreshold(Integer sizeThreshold) { this.sizeThreshold = sizeThreshold; } public File getRepository() { if (!this.getIsVirdir()) { throw new IllegalStateException("isVirdir not set to true, repository not operate."); } return repository; } public void setRepository(File repository) { this.repository = repository; } public Boolean getIsLimitSize() { return isLimitSize; } public void setIsLimitSize(Boolean isLimitSize) { this.isLimitSize = isLimitSize; } public Integer getSizeMax() { if (!this.getIsLimitSize()) { throw new IllegalStateException("isLimitSize not set to true, sizeMax not operate."); } return sizeMax; } public void setSizeMax(Integer sizeMax) { this.sizeMax = sizeMax; } public String getEncoding() { return encoding; } public void setEncoding(String encoding) { this.encoding = encoding; } }
/** * @title: FileUpload.java * @develop: YanXiaojia R&D * @description: 文件上传工具。 * @author: YanXiaojia * @version: 1.00 */ public class FileUpload { /** * 文件上传。 * @param request * @throws Exception */ public static FileDm fileUpload(HttpServletRequest request, FileDm fm) throws Exception { // 创建基于磁盘文件项目的工厂 DiskFileItemFactory factory = new DiskFileItemFactory(); // 缓冲区目录 factory.setRepository(fm.getRepository()); // 缓冲区大小 factory.setSizeThreshold(fm.getSizeThreshold()); // 创建一个新文件上传 ServletFileUpload upload = new ServletFileUpload(factory); // 设置文件编码 upload.setHeaderEncoding(fm.getEncoding()); // 设置文件上传大小 upload.setSizeMax(fm.getSizeMax()); // 检查输入请求是否为multiPart表单数据 if (fm.getIsMultiPart()) { boolean isMultiPart = ServletFileUpload.isMultipartContent(request); if (isMultiPart == false) { throw new IllegalStateException("The enctype must be multipart/form-data."); } } // 解析请求 List<FileItem> items = upload.parseRequest(request); // 上传项目过程 Iterator<FileItem> iter = items.iterator(); Boolean flag = true; while (iter.hasNext()) { FileItem item = iter.next(); // 处理文件类型 fm.handleFileType(item.getName()); flag = fm.isAllowFileType(fm.getFileType()); if (!flag) { throw new IllegalStateException("Upload file type is restricted."); } // 处理上传 File field = new File(fm.getFileNameAll()); String filePath = getFilePath(fm.getFilePath(),field.getName()); fm.setFilePath(filePath); File file = new File(filePath); item.write(file); } return fm; } public static String getFilePath(String dir, String fileName) { String fileSeparator = System.getProperty("file.separator"); if (!dir.endsWith(fileSeparator)) { dir += fileSeparator; } File file = new File(dir); if (!file.isDirectory()) { // 如果文件夹不存在就新建 file.mkdirs(); } return dir + fileName; } }
/** * Servlet事例 * Servlet implementation class Upload */ public class Upload extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { FileUpload fileUpload = new FileUpload(); fileUpload.setFileName(UUID.randomUUID().toString()); // 允许上传的文件类型。 fileUpload.setFileTypes(new String[]{"jpg","png","gif"}); // 文件上传目录 fileUpload.setFilePath("E:/project/apache.common.fileupload/"); // 启用虚拟目录 fileUpload.setIsVirdir(true); File ff = new File(request.getSession().getServletContext().getRealPath("/") + "temp/"); fileUpload.setRepository(ff); // 限制文件上传大小 fileUpload.setIsLimitSize(true); try { fileUpload=FileUploadUtil.fileUpload(request, fileUpload); } catch (Exception e) { e.printStackTrace(); } request.setAttribute("msg","成功。"); request.setAttribute("img", ff.toString().replace("\\", "/")+"/" +fileUpload.getFileNameAll()); request.getRequestDispatcher("/succ.jsp").forward(request, response); } }
发表评论
-
Spring MVC配置文件
2014-06-09 17:08 640<?xml version="1.0&qu ... -
使用StringWriter获取异常内容
2013-12-12 11:20 1199try{...} catch (Exception e) ... -
Spring 邮件相关服务接口
2013-12-02 11:57 15091、服务接口 package com.*.email.se ... -
Spring(3.X) Task 定时任务
2013-11-28 16:58 26311、创建定时任务 package com.*.task; ... -
html5中的Web Storage
2013-07-08 10:36 989html5中的Web Storage包括了两种存储方式:ses ... -
10要点解决IE6兼容性问题
2013-01-11 11:29 7981、使用声明 你必须经 ... -
EL表达式函数-获取字符串长度、截取字符串
2012-10-30 11:34 1254头部加入标签库 <%@ taglib prefix=& ... -
<html:select>标签
2012-08-27 17:16 1326Struts 中的下拉选择列表 ... -
css 自动换行
2012-08-02 16:21 1034<div id="content" ... -
spring之JDBC批量操作
2012-04-10 13:02 1997spring之JDBC批量操作 jdbcTempl ... -
页面自动跳转
2012-03-22 11:56 849<meta http-equiv="refre ... -
Base64编译代码
2012-03-12 22:07 1118package org.agilecentury.mail; ... -
JSP 网站统计
2012-02-28 11:55 1185<%@ page contentType="t ...
相关推荐
在"Common-FileUpload实现文件上传.doc"文档中,可能会详细介绍如何利用这个库来处理用户的文件上传请求。Common-FileUpload提供了一套完整的API,用于解析请求中的多部分数据,从而提取上传的文件。使用它,开发者...
标题 "common-FileUpload.jar" 指向的是一个用于处理文件上传功能的Java库,具体来说是Apache Commons FileUpload组件的实现。这个组件广泛应用于Web应用开发中,特别是那些需要用户上传文件的场景,如图片上传、...
在实际开发中,当你需要在Web应用中实现文件上传功能时,首先会配置`commons-fileupload-1.2.1.jar`来解析请求,然后利用`commons-io-1.4.jar`处理上传后的文件,比如保存到服务器的指定目录,或者进行一些预处理...
在IT行业中,文件上传是常见的功能之一,尤其是在Web应用中,用户可能需要上传各种类型的数据,如图片、文档等。...`Commons-FileUpload`库为这些提供了良好的支持,使得在Java环境中处理文件上传变得简单易行。
2. **添加依赖**:下载`commons-fileupload`的JAR包,例如`commons-fileupload-1.0-beta-1.jar`,并将它放入Tomcat的`lib`目录下,通常是`${TOMCAT}/common/lib`。此外,由于`commons-fileupload`依赖于`commons-...
在提供的文件名中,我们看到的是两个关键组件:`commons-fileupload-1.2.2` 和 `common-io-2.0.1`,它们是Apache Commons项目中的两个重要部分。 **Apache Commons FileUpload** 是一个用于处理HTTP请求中包含文件...
本文将深入探讨`commons-fileupload`库的一个优化实用类的使用,以及如何通过`UploadForm`和`FileWrapper`这两个类来提高文件上传的效率和安全性。 `commons-fileupload`库的核心在于其`DiskFileItemFactory`和`...
在"commons-fileupload-1.3.1-bin"这个压缩包中,包含了FileUpload库的二进制文件和可能的文档、源代码,使得开发者能够查看和理解其内部实现,以便进行自定义扩展或调试。 Apache Commons IO是另一个非常实用的...
这个源码包"commons-fileupload-1.3.2-src"包含了该库的完整源代码,让我们深入了解一下这个库的核心知识点。 1. **多部分解析**:在HTTP请求中,文件上传通常涉及多部分/形式数据(Multipart/form-data)。...
使用fileupload组件实现文件上传功能 FileUpload组件是Apache提供的一款文件上传组件,能够帮助我们轻松实现文件上传功能。下面我们将详细介绍使用FileUpload组件实现文件上传功能的步骤和要点: 首先,需要引入两...
这里我们主要讨论的是两个用于文件上传的框架:Common-FileUpload和COS。 1. **Common-FileUpload**: 这是Apache Jakarta的一个子项目,提供了Java Web应用程序处理文件上传的功能。它弥补了Servlet API在处理多...
"Common-fileupload"可能是一个自定义的文件上传插件或者库,它可能集成了多文件选择、进度条显示、错误处理等功能,使得文件上传变得更加便捷和用户友好。在ExtJS应用中,这样的组件通常会与表单(form)和按钮...
总之,Common FileUpload是一个强大且灵活的Java文件上传组件,它为开发人员提供了处理文件上传的便捷工具,无论是在小型项目还是大型企业级应用中都能发挥重要作用。通过合理的配置和适当的错误处理,你可以构建...
总结来说,"apache-common-uploadfile"是一个解决Java Servlet环境中文件上传问题的库,它提供了高效且灵活的解决方案,使得开发者能够方便地处理用户上传的各种文件。在Web开发中,掌握Apache Commons FileUpload的...
它内置了对Common-FileUpload库的支持,简化了文件上传的编程过程。 5. **Struts2文件下载**:在Struts2框架中,文件下载通常通过创建一个Action,该Action读取服务器上文件的内容,然后设置响应头以指示浏览器这是...
在描述中提到的 "common-fileupload.jar" 文件,是Java环境下处理文件上传的库,用于处理服务器端的文件接收和存储。 在Java环境中,jQuery File Upload通常与Servlet或Spring MVC等框架结合使用。在服务器端,你...
编译上述Servlet时,请确保设置了正确的classpath,以包含`commons-fileupload-1.0.jar`和`tomcat\common\lib\servlet-api.jar`。 2. **配置Servlet** 使用文本编辑器打开`tomcat\webapps\你的webapp\WEB-INF\...
通过查看 `commons-fileupload-1.3.3-src.zip` 源码,我们可以理解文件上传过程中的细节,如分块读取、大小限制、异常处理等。 **两者结合** 在实际应用中,`Commons-IO` 和 `Commons-Fileupload` 经常一起使用。...
首先,文件上传的核心依赖于两个Java库,即`common-io-1.4.jar`和`commons-fileupload-1.2.1.jar`。`Commons IO`库提供了一系列与输入/输出操作相关的工具类,而`Commons FileUpload`则专门用于处理HTTP请求中的多...