- 浏览: 284114 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
di1984HIT:
学习了。确实不错。、
Eclipse编辑XML自动提示 -
chokee:
可以不行再参考下这一篇http://yubolg.iteye. ...
Eclipse编辑XML自动提示 -
xiaofengtoo:
请问下 你用的什么版本 我用的8.0 版本我的郁闷了 没有Ge ...
ER/Studio使用 -
xp1056:
应该就是这样,可我的不行,我也重起eclipse了,郁闷
Eclipse编辑XML自动提示 -
sxpujs:
这个办法不错
div显示和不显示(当几列数据;<td></td>中显示或不显示)
fileupload渗透分析(org.apache.commons.fileupload渗透分析)
package com.zy.service; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 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;
public class UpFileProcessServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); request.setCharacterEncoding("utf-8"); this.FileUpCenter(request, response);//调用文件上传中心类 } /*文件上传中心类*/ private void FileUpCenter(HttpServletRequest request,HttpServletResponse response){ /* * 1.处理文件 上传 首先要 创建ServletFileUpload类的实例 * */ ServletFileUpload upload=new ServletFileUpload(); /* * 2.设置整个请求最大值,默认为-1(表示没有上限) * */ upload.setSizeMax(-1); /* * 3.设置单个文件的大小 10M 默认为-1(没有上限) * */ upload.setFileSizeMax(1024*1024*10); /* * 4.设置上传的临时数据(某一个数据在上传中被保存的数据) 在内存中 的大小 * */ //1.创建[文件项目]的工厂_友情提示:如果用DiskFileUpload处理文件上传 可不用创建该工厂 DiskFileItemFactory diskFileItemFactory=new DiskFileItemFactory(); //2.设置 内存缓存 默认为(10240)10k 咱们设置为5K diskFileItemFactory.setSizeThreshold(1024*5); //3.设置超过缓存部分的 数据 存储目录 该目录默认为:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ //咱们设置为当前应用上下文的/upload/temp路径 diskFileItemFactory.setRepository(new File( this.getServletContext().getRealPath("/upload/temp"))); //4.把改工厂设置到upload使其具有以上属性 upload.setFileItemFactory(diskFileItemFactory); /* * 5.设置监听器 用于监听文件的上传情况(方便结合ajax与进度条 的使用) * */ //如:upload.setProgressListener(pListener); /* * 6.解析数据 解析请求中的数据 (主要是创建FileItem) * */ List fileItems=null; try { fileItems=upload.parseRequest(request); /*分析:该方法首先创建了ServletRequestContext的实例 * 然后从请求对象中获取了 字符集|编码|请求的总大小|输出流 * 然后创建了其内部类FileItemIteratorImpl, * 该类负责检查字符集是否合法|请求总大小是否大于自定义的总大小, * 如果超过会抛一个SizeLimitExceededException异常 等 * 这个内部类的主要作用就是对文件数据的一些判断 如name名称 等 * 然后经过一些复杂的周折,它会通过请求总大小,nam属性名称,文件名,和是否是file类型来创建FileItem的示例以及通过Streams的copy方法来传递一些输入输出流 * */ } catch (FileUploadException e) { e.printStackTrace(); } /* * 7.一切准备工作做好了,咱们就开始处理每个表单的单个字段(当然如果你就上传一个文件 只有一个表单可以处理 呵呵) * */ //1.首先创建一个迭代器Iterator i = fileItems.iterator(); Iterator i = fileItems.iterator(); //2.迭代 取出每一个FileItem进行分析 while (i.hasNext()) { FileItem fi = (FileItem) i.next(); //3.isFormField方法用于判断FileItem类对象封装的数据是否属于一个普通表单字段,还是属于一个文件表单字段,如果是普通表单字段则返回true,否则返回false。 if (!fi.isFormField())//取反 { try { //4.通过getName()方法取表单中name属性对应的文件名 //注:只要表单中只要设置了name属性,即便没有上传任何东西 该表单仍然对应一个FileItem对象 只是name为空。所以要对getName() 的值进行非空判断 String pathThatSrc = fi.getName(); if(pathThatSrc.trim().equals("")) { continue; } int start = pathThatSrc.lastIndexOf(File.separator);//通过"\\"截取索引的下标位置 String fileName = pathThatSrc.substring(start + 1);//把下标位置+1的下标开始截取文件名(再补充一下昂,如果你上传的是中文文件名的文件 最后传到服务器上会变成乱码 也许要修改源码才可以解决)推荐 使用 UUID 来作为文件名称 File bulidFile = new File(this.getServletContext().getRealPath("/upload/filedir"), fileName);//通过目录 和 文件名 创建File对象 你还可以对该File进行存在与否的判断 //5.写入文件 fi.write(bulidFile); String fieldName = fi.getFieldName(); request.setAttribute(fieldName, fileName); } catch (Exception e) { e.printStackTrace(); return; } finally { fi.delete();//无论是否出现异常 都要去清理临时 文件夹 里的数据 } }//if end }//while end }//class end public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
原文地址:http://celerity.iteye.com/blog/295528
发表评论
-
list vo sort
2010-09-20 14:13 1565一: 只要把需要排序的list传进去(operlist),l ... -
ArrayList和Vector的区别,HashMap和Hashtable的区别
2010-08-17 19:58 914就ArrayList与Vector主要从二方面来说. ... -
Vector、ArrayList和List的异同(转)
2010-08-17 19:56 860线性表,链表,哈希 ... -
Eclipse下Tomcat插件的安装
2010-07-31 16:39 950在Eclipse下安装Tomcat插件使开发,编译,发布变的相 ... -
Set和List
2010-07-19 19:32 1162两个接口都是继承自Collection. List(intef ... -
介绍Java集合类(Collections)
2010-07-19 16:14 961本文介绍了java.util下的接口Collection和 ... -
java汉字转拼音和oracle汉字转拼音
2010-07-06 17:31 2646import java.util.Iterator; ... -
一个关于Exception的基础题
2010-04-26 19:45 938要求大概就是: 1.一个包装了的异常类 packa ... -
Map的几个实现类
2010-04-19 14:19 1053我往一个map里面put一些值,我想要取出来的时候按照put进 ... -
java ReadProperties
2010-04-08 17:26 1526package propertyFile; import ... -
Eclipse编辑XML自动提示
2010-03-19 16:31 20231IED Eclipse Java EE IDE for W ... -
java 日期 加上几天
2009-05-12 17:58 8211String order_end = request.getP ... -
分析日志并按分隔符分开保存
2009-04-20 20:53 1606/** * 读取日志文件地址,每行根据指定字符分割开,每 ... -
子类对象的实例化过程(仅供参考)
2009-04-09 22:28 1467对象中的成员变量的初始化过程步骤如下: 1.分配成员变量的存储 ... -
批量重命名文件
2009-04-08 23:04 1228package com.bob.renameFile; im ... -
父类与子类的静态代码块和构造方法的执行顺序
2009-04-08 23:03 2467package test; /** * 要点: * ... -
使用links方式安装Eclipse插件
2009-04-08 23:02 841eclispe想必大家都很熟悉 ... -
j2se some1
2009-04-08 23:01 9111.格式化日期 Date dt = new Date(); ... -
eclipse ,myeclipse使用 自己总结
2009-04-08 18:16 11441.window->preferences->ge ... -
关于内部类
2009-04-07 23:12 7861.内部类和外部类的变量的访问 public class O ...
相关推荐
spring mvc 上传需要的jar包 com.springsource.org.apache.commons.fileupload-1.2.0.jar com.springsource.org.apache.commons.io-1.4.0.jar
com.springsource.org.apache.commons.fileupload 自己打入本地Jar包即可
import org.apache.commons.fileupload.servlet.ServletFileUpload; import org.apache.log4j.Logger; public class FileServlet extends HttpServlet { private static final long serialVersionUID = -...
org.apache.commons相关的所以jar包,包括commons-beanutils-1.8.0-bin.zip;commons-betwixt-0.8.zip;commons-cli-1.1.zip;commons-codec-1.3.zip;commons-collections-3.2.1-bin.zip;commons-digester-1.8.zip...
`org.apache.commons.fileupload.DiskFileUpload` 是 Apache Commons FileUpload 模块中的一个类,主要用于处理 HTTP 请求中的文件上传。这个类实现了基于磁盘的文件上传存储策略,当上传文件大小超过内存阈值时,它...
项目中需要 org.apache.commons.io.IOUtils的可以下载此包,fileupload组件依赖的commons-io组件
commons-fileupload-1.2.1.jar commons-discovery-0.2.jar commons-digester-1.6.jar commons-dbcp-1.2.2.jar commons-collections-3.2.1.jar commons-codec-1.3.jar commons-chain-1.1.jar commons-beanutils-1.6....
这个"org.apache.commons.jar"包是Apache Commons项目的一部分,其中包含了该目录下的一系列资源文件,确保了功能的完整性和多样性。 Apache Commons库的核心理念是创建一系列高质量的、独立的、实用的Java类库,...
以下是一些关于Apache Commons FileUpload的关键知识点: 1. **多部分解析**:FileUpload库的核心功能是解析HTTP请求中的多部分数据。HTTP规范规定,文件上传通常通过“multipart/form-data”编码方式进行,...
标题“org.apache.commons.fileupload 文件上传至数据库”指的是使用Apache Commons FileUpload库将用户上传的文件存储到数据库中的技术。Apache Commons FileUpload是Apache软件基金会的一个开源项目,它提供了一个...
org.apache.commons 的经典jar 包 commons-beanutils-1.8.0-bin、 commons-betwixt-0.8、 commons-cli-1.1、 commons-codec-1.3、 commons-collections-3.2.1-bin、 commons-digester-1.8、 commons-...
org.apache.commons 系列的 JAR集合,用以解决异常,包含内容如下: commons-cli-1.0 commons-codec-1.3 commons-collections-3.1 commons-dbcp commons-digester commons-discovery-0.2 commons-fileupload-1.2.1 ...
标题中的"org.apache.commons-fileupload-1.2.1.jar"是该库的一个特定版本,1.2.1是它的版本号,表示它包含了从1.2.0到1.2.1之间的所有修复和改进。 Apache Commons FileUpload的工作原理基于Servlet规范中的多部分...
apache commons.fileupload上传组件在上传文件时,在调用parseRequest方法时,先将输入流上传到服务器临时目录,在之后的文件处理过程中,再将临时目录下保存的文件复制到指定的目录,多了一道转储步骤。本实现抽取...
java上传文件锁必须的jar包,org.apache.commons.fileupload-1.2.2.LIFERAY-PATCHED-1
标题 "org.apache.commons.fileupload" 指的是Apache Commons FileUpload组件,这是一个Java库,专门用于处理HTTP协议中的文件上传功能。Apache Commons是Apache软件基金会的一个项目,它提供了许多Java编程中常用的...
在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload库是实现这一功能的强大工具。本示例将深入解析如何结合Maven构建一个基于Servlet的文件上传演示项目。Maven是一个项目管理工具,它可以帮助...
org.apache.commons的jar包,Apache Commons包含了很多开源的工具。 包括commons-beanutils-1.8.0-bin、commons-betwixt-0.8、commons-cli-1.1、commons-codec-1.3、commons-collections-3.2.1-bin、commons-...
org.apache.commons的压缩包,里面包含了beanutils、betwixit、cli、codec、collections、digest、discovery、email、fileupload、io、lang、net