- 浏览: 116293 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 574<?xml version="1.0&qu ... -
使用StringWriter获取异常内容
2013-12-12 11:20 1124try{...} catch (Exception e) ... -
Spring 邮件相关服务接口
2013-12-02 11:57 14521、服务接口 package com.*.email.se ... -
Spring(3.X) Task 定时任务
2013-11-28 16:58 25551、创建定时任务 package com.*.task; ... -
html5中的Web Storage
2013-07-08 10:36 941html5中的Web Storage包括了两种存储方式:ses ... -
10要点解决IE6兼容性问题
2013-01-11 11:29 7481、使用声明 你必须经 ... -
EL表达式函数-获取字符串长度、截取字符串
2012-10-30 11:34 1190头部加入标签库 <%@ taglib prefix=& ... -
<html:select>标签
2012-08-27 17:16 1274Struts 中的下拉选择列表 ... -
css 自动换行
2012-08-02 16:21 977<div id="content" ... -
spring之JDBC批量操作
2012-04-10 13:02 1940spring之JDBC批量操作 jdbcTempl ... -
页面自动跳转
2012-03-22 11:56 809<meta http-equiv="refre ... -
Base64编译代码
2012-03-12 22:07 1055package org.agilecentury.mail; ... -
JSP 网站统计
2012-02-28 11:55 1115<%@ page contentType="t ...
相关推荐
commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-fileupload-1.2.2commons-...
赠送Maven依赖信息文件:commons-fileupload-1.3.3.pom; 包含翻译后的API文档:commons-fileupload-1.3.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:commons-fileupload:commons-fileupload:1.3.3; 标签:...
java中用common-fileupload上传文件的一个很简单的demo展示
开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2开发工具 commons-fileupload-1.3.2...
common-fileupload官方文档
赠送Maven依赖信息文件:commons-fileupload-1.4.pom; 包含翻译后的API文档:commons-fileupload-1.4-javadoc-API文档-中文(简体)版.zip; Maven坐标:commons-fileupload:commons-fileupload:1.4; 标签:...
Common-FileUpload带进度条文件上传
最全的common-FileUpload.jar包,里面有三个jar包,绝对你够用
common-fileupload控件不能删除临时文件的原因分析 1.分析原因 2.出现条件 3.过程分析 4.解决办法
commons-fileupload-1.4.jar
commons-fileupload-1.2.1-bin commons-fileupload 文件上传 commons-fileupload-1.2.1-bin commons-fileupload 文件上传 jar包 及相关文档
赠送jar包:commons-fileupload-1.3.1.jar; 赠送原API文档:commons-fileupload-1.3.1-javadoc.jar; 赠送源代码:commons-fileupload-1.3.1-sources.jar; 包含翻译后的API文档:commons-fileupload-1.3.1-...
commons commons-fileupload历史版本jar包集合,包括src源码 附件列表: commons-fileupload-1.0.zip commons-fileupload-1.1.1.zip commons-fileupload-1.1.zip commons-fileupload-1.2.1-bin.zip commons-...
java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载
commons-fileupload-1.3.3.jar和commons-io-2.6.jar最新版本
Common-fileupload组件实现文件上传.pdfCommon-fileupload组件实现文件上传.pdfCommon-fileupload组件实现文件上传.pdfCommon-fileupload组件实现文件上传.pdfCommon-fileupload组件实现文件上传.pdfCommon-...
利用servlet实现的commons-fileupload的实例。也就是文件上传实例。
Struts2拦截器学习.doc Common-FileUpload实现文件上传.doc 写得很好
包括commons所有的18个工具包: validator、pool、beanutil、logging、dbcp、collections、codec、digester、discover、email、fileupload、httpclient、jelly、jxpath、lang、modeler、net
使用commons-fileupload上传文件 使用commons-fileupload上传文件