- 浏览: 454727 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
csdn_lichao:
[flash=200,200][flash=200,200][ ...
MySql数据分区操作,新增分区 -
xtxycy:
的确有一楼说这个问题,有一定几率出现重复卖的情况
Java中有两种实现多线程的方式以及两种方式之间的区别 -
superhotdong:
class ThreadTest implements Run ...
Java中有两种实现多线程的方式以及两种方式之间的区别 -
yuelangyc:
beming 写道时间过去有点长,想请教一个问题,如果我只想批 ...
Mysql中批量更新的几种方式 -
beming:
时间过去有点长,想请教一个问题,如果我只想批量更新,不插入有没 ...
Mysql中批量更新的几种方式
java commons-fileupload-1.2.jar
http://commons.apache.org/fileupload/index.html
http://commons.apache.org/downloads/download_fileupload.cgi
新建工程FileUpload,将commons-fileupload-1.2.jar,commons-io-1.3.2.jar放入工程中.
在webroot下建ImagesUploadTemp文件夹存放上传的文件
1.新建FileUploadServlet
2.web.xml内容如下
3.上传的页面upload.html
本文非作者原创.
http://commons.apache.org/fileupload/index.html
http://commons.apache.org/downloads/download_fileupload.cgi
新建工程FileUpload,将commons-fileupload-1.2.jar,commons-io-1.3.2.jar放入工程中.
在webroot下建ImagesUploadTemp文件夹存放上传的文件
1.新建FileUploadServlet
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.FileUploadBase.SizeLimitExceededException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; public class FileUploadServlet extends HttpServlet { public FileUploadServlet() { super(); } public void destroy() { super.destroy(); // Just puts "destroy" string in log // Put your code here } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } @SuppressWarnings("deprecation") public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { final long MAX_SIZE = 3 * 1024 * 1024;// 设置上传文件最大为 3M // 允许上传的文件格式的列表 final String[] allowedExt = new String[] { "jpg", "jpeg", "gif", "txt", "doc", "docx", "mp3", "wma", "m4a" }; response.setContentType("text/html"); // 设置字符编码为UTF-8, 这样支持汉字显示 response.setCharacterEncoding("UTF-8"); // 实例化一个硬盘文件工厂,用来配置上传组件ServletFileUpload DiskFileItemFactory dfif = new DiskFileItemFactory(); dfif.setSizeThreshold(4096);// 设置上传文件时用于临时存放文件的内存大小,这里是4K.多于的部分将临时存在硬盘 dfif.setRepository(new File(request.getRealPath("/") + "ImagesUploadTemp"));// 设置存放临时文件的目录,web根目录下的ImagesUploadTemp目录 // 用以上工厂实例化上传组件 ServletFileUpload sfu = new ServletFileUpload(dfif); // 设置最大上传尺寸 sfu.setSizeMax(MAX_SIZE); PrintWriter out = response.getWriter(); // 从request得到 所有 上传域的列表 List fileList = null; try { fileList = sfu.parseRequest(request); } catch (FileUploadException e) {// 处理文件尺寸过大异常 if (e instanceof SizeLimitExceededException) { out.println("文件尺寸超过规定大小:" + MAX_SIZE + "字节<p />"); out.println("<a href=\"upload.html\" target=\"_top\">返回</a>"); return; } e.printStackTrace(); } // 没有文件上传 if (fileList == null || fileList.size() == 0) { out.println("请选择上传文件<p />"); out.println("<a href=\"upload.html\" target=\"_top\">返回</a>"); return; } // 得到所有上传的文件 Iterator fileItr = fileList.iterator(); int i=0; // 循环处理所有文件 while (fileItr.hasNext()) { FileItem fileItem = null; String path = null; long size = 0; // 得到当前文件 fileItem = (FileItem) fileItr.next(); i++; // 忽略简单form字段而不是上传域的文件域(<input type="text" />等) if (fileItem == null || fileItem.isFormField()) { continue; } // 得到文件的完整路径 path = fileItem.getName(); // 得到文件的大小 size = fileItem.getSize(); if ("".equals(path) || size == 0) { out.println("请选择上传文件<p />"); out.println("<a href=\"upload.html\" target=\"_top\">返回</a>"); return; } // 得到去除路径的文件名 String t_name = path.substring(path.lastIndexOf("\\") + 1); // 得到文件的扩展名(无扩展名时将得到全名) String t_ext = t_name.substring(t_name.lastIndexOf(".") + 1); // 拒绝接受规定文件格式之外的文件类型 int allowFlag = 0; int allowedExtCount = allowedExt.length; for (; allowFlag < allowedExtCount; allowFlag++) { if (allowedExt[allowFlag].equals(t_ext)) break; } if (allowFlag == allowedExtCount) { out.println("请上传以下类型的文件<p />"); for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++) out.println("*." + allowedExt[allowFlag] + " "); out.println("<p /><a href=\"upload.html\" target=\"_top\">返回</a>"); return; } long now = System.currentTimeMillis(); // 根据系统时间生成上传后保存的文件名 String prefix = String.valueOf(now); // 保存的最终文件完整路径,保存在web根目录下的ImagesUploaded目录下 String u_name = request.getRealPath("/") + "ImagesUploaded/" + prefix + "." + t_ext; try { // 保存文件 fileItem.write(new File(u_name)); out.println("文件上传成功. 已保存为: " + prefix + "." + t_ext + " 文件大小: " + size + "字节<p />"); out.println("<a href=\"upload.html\" target=\"_top\">继续上传</a>"); } catch (Exception e) { e.printStackTrace(); } } } public void init() throws ServletException { // Put your code here } }
2.web.xml内容如下
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>FileUploadServlet</servlet-name> <servlet-class>FileUploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>FileUploadServlet</servlet-name> <url-pattern>/FileUploadServlet</url-pattern> </servlet-mapping> </web-app>
3.上传的页面upload.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>Untitled</title> </head> <body> <form action="FileUploadServlet" method="post" enctype="multipart/form-data"> <input type="file" size="30" name="test" /> <br /> <input name="up" type="submit" value="上传" /> </form> </body> </html>
本文非作者原创.
发表评论
-
Mybatis的Mapper的多参数使用,list
2014-01-18 09:51 28141Mapper中多参数查 ... -
Java的logger打印异常的堆栈信息
2012-11-28 10:25 13623在java开发中,logger打印错误日志是最 ... -
Java关于split 处理空串以及截取最大数。
2012-07-19 20:50 7630java的String类中有个split方法, ... -
Java中关于List 与对象的关系
2012-05-30 16:32 1473在开发中,List 是经常被使用到的对象,Ar ... -
JAVA数据统计文件的导出和导入、数据库一键备份还原。
2012-05-07 18:15 2930看标题感觉像是两个完全不同的东西,为什么要写到 ... -
Java中getResourceAsStream的用法
2012-03-01 11:35 1004全文无损转载:http://www.cnblogs.com/j ... -
JAVA递归方法
2012-02-17 14:26 0根据ParentId查询出所有子渠道Id ... -
JAVA写一个方法,判断该数是否为回数。
2012-02-02 21:06 3334数学上:一般的,一个自然数,如果该自然数从左向右读 ... -
Java源码打Jar包的两种方式.
2011-10-11 10:42 2204总结起来,eclipse下打包有2种方式。 1) ... -
Java中使用JSONObject对象必备
2011-08-22 11:05 1230JSON 即 JavaScript Object Natati ... -
java中使用dom简单轻便解析XML串.
2011-07-20 17:51 910java中使用dom解析简单的xml文件,只是 ... -
Java大批量导出数据,格式可以为xml或excel.
2011-06-18 11:20 6363最近项目中用到大数据量导出功能.不能确定到底有 ... -
Java中离线并发与锁机制。
2011-06-09 18:10 1449离线并发的来源 ... -
Java非常简单的Ajax使用.第一个Ajax程序
2011-06-04 17:38 2765查询某个表某条记录的时候,只能查出表的ID,不能直接显示NAM ... -
Java中获取windows、Linux和windows7的MAC地址
2011-06-03 16:52 10183今天在完成任务的时候,遇到了需要对对应的MAC地址进行验证的方 ... -
Java中判断非空对象.
2011-06-01 11:17 12944Java中经常会遇到判断非空的时候. 有的时候判断了非空但是还 ... -
Java中关于三目运算符理解和简单应用.
2011-05-26 11:08 24494名词解释 三目运算符: <表达式1>?<表达 ... -
Java实现真分页.自己领悟.
2011-05-25 17:17 2362oracle+java实现的真分页.每一页数据都是一次查询. ... -
Java中有两种实现多线程的方式以及两种方式之间的区别
2011-05-24 10:47 17409看到一个面试题.问两种 ... -
JAVA中简单调用MD5算法进行加密.
2011-03-19 09:39 6181加密算法简单代码.引入两个包.无需知道MD5源码. packa ...
相关推荐
在这个场景中,我们关注的是"commons-fileupload-1.3.jar"和"commons-io-1.2.jar"这两个文件,它们被打包在一个名为"commons-fileupload-1.3.jar和commons-io-1.2.jar.zip"的压缩文件中。 **Apache Commons ...
标题中的"commons-fileupload-1.2.jar+commons-io-1.3.2.jar"提到了两个关键的Java库:Apache Commons FileUpload 1.2 和 Apache Commons IO 1.3.2。这两个库在Java开发中常用于处理文件上传功能。 Apache Commons ...
-下载后解压zip包,将commons-fileupload-1.1.1.jar,和commons-io-1.2.jar(这里我们用的是更新的版本,但是用法是一样的)复制到tomcat的webapps\你的webapp\WEB-INF\lib\下,如果目录不存在请自建目录。 新建一个...
java上传下载需要的jar:commons-fileupload-1.2.jar;commons-io-1.3.2.jar;java上传jar包;java下载jar包;java上传jar;java下载jar;java上传下载需要的jar:commons-fileupload-1.2.jar;commons-io-1.3.2.jar;java上传...
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库,它们在Web应用中被广泛使用。这两个库分别提供了不同的功能,但在处理文件上传时常常一起使用。 `commons-fileupload-1.2.1....
标题和描述中提到的"commons-fileupload-1.2.jar"和"commons-io-1.3.1.jar"是两个在Java开发中常用的开源库,主要用于处理文件上传功能。这两个库是Apache Commons项目的一部分,提供了丰富的文件操作和网络通信功能...
`commons-fileupload-1.1.1.jar` 和 `commons-io-1.2.jar` 是两个非常重要的库,它们为Java提供了强大的文件上传支持。Apache Commons FileUpload是Apache组织的一个子项目,专门处理HTTP请求中的多部分数据,而...
commons-fileupload-1.2.jar commons-io-1.3.2.jar java tomcat MyEclipse commons-fileupload-1.2.jar commons-io-1.3.2.jar 利用这两个jia包完成资源上传功能 完整的MyEclipse项目包
Apache Commons IO则是另一个强大的Java I/O工具包,它提供了大量的静态方法来处理文件、流、字符集等操作。在"commons-io-2.0.1.jar"这个版本中,它包含了多种文件操作函数,如读写文件、复制文件、移动文件、比较...
在本案例中,我们关注的是两个关键的Java库:`commons-fileupload-1.2.jar` 和 `commons-io-1.3.2.jar`。这两个库都是Apache Commons项目的一部分,提供了强大且易于使用的文件处理功能。 `commons-fileupload-1.2....
根据提供的文件信息,可以看出这里涉及的是两个Java库:`commons-fileupload-1.2.jar` 和 `commons-io-1.3.2.jar`,以及一段与这些库无关的C#代码片段,该代码用于将对象列表转换为JSON格式。下面我们将针对这两个库...
Apache Commons FileUpload与Commons IO是Java开发中用于处理文件上传功能的重要库。这两个库的组合可以帮助开发者在Web应用中实现高效且稳定的文件上传功能。下面将详细介绍这两个库及其使用方法。 Apache Commons...
标题中的"commons-fileupload-1.2.jar"和"commons-io.jar"是两个在Java开发中常用的开源库,主要用于处理HTTP协议中的文件上传功能。这两个库在JSP(JavaServer Pages)开发中扮演着重要角色,帮助开发者实现用户...
1. Apache Commons FileUpload库:学习如何在Java Web应用中实现文件上传功能,包括解析multipart/form-data请求,处理文件流,以及设置上传限制。 2. HTTP文件上传:理解HTTP协议中的文件上传机制,如何通过表单...
Apache Commons FileUpload与Apache Commons IO是Java开发中用于处理文件上传功能的重要库。这两个库在Web应用程序中尤其常见,因为它们提供了处理HTTP请求中的多部分数据(如表单上传的文件)的便捷方法。 `...
Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库。它们为开发者提供了强大而灵活的工具,使得在Web应用中处理文件上传变得简单易行。 `commons-fileupload-1.2.1.jar`是Apache ...
总的来说,`commons-fileupload-1.2.1.jar`和`commons-io-1.3.2.jar`这两个库在Struts和Spring MVC中扮演着关键角色,使得处理文件上传变得更加便捷和可靠。开发者可以通过这些库提供的API轻松实现文件上传功能,...
`commons-fileupload-1.3.jar`是这个库的特定版本,包含了处理文件上传请求所需的所有类和方法。它支持将大的文件分割成多个小块,存储在内存或磁盘上,以防止内存溢出,并允许配置临时文件的存储位置和大小限制。...
本篇将详细讲解Struts2中单文件和多文件上传的实现,以及与之相关的两个关键jar包:`commons-fileupload-1.2.1.jar`和`commons-io-1.4.jar`。 首先,`commons-fileupload-1.2.1.jar`是Apache Commons FileUpload库...