`

使用common-fileupload 和common-io实现文件的上传和批量上传

    博客分类:
  • j2se
阅读更多

common-fileupload:可以实现文件的上传和批量上传 ,同时也可以实现表单中其他元素的上传

common-io:对io的操作

服务器端的代码如下:

 

public class ImageUploadServlet extends HttpServlet{

 

@Override

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

doPost(request,response);

}

 

@Override

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

 

boolean isFileUpload = ServletFileUpload.isMultipartContent(request);//检测是否存在文件上传的请求

if(isFileUpload){

// 处理磁盘文件工厂类

FileItemFactory factory = new DiskFileItemFactory();

// 文件上传的处理类

ServletFileUpload upload = new ServletFileUpload(factory);

//解析上传的文件

try {

List fileItems = upload.parseRequest(request);

for (Iterator iterator = fileItems.iterator(); iterator

.hasNext();) {

FileItem fileItem= (FileItem) iterator.next();

//判断上传的表单域是否为文件上传,false 表示文件上传<input type="file" />

//true 表示为非文件上传

if(fileItem.isFormField()){

//对非文件上传的处理

if("userName".equals(fileItem.getFieldName())){

}

}else {

String contentType = fileItem.getContentType()

.toLowerCase();// 比如:image/pjpg

//进行格式的判断

if (contentType.indexOf("jpg") != -1

|| contentType.indexOf("jpeg") != -1

|| contentType.indexOf("png") != -1

|| contentType.indexOf("gif") != -1 || contentType.indexOf("bmp") !=-1) {

//对文件上传的处理

String fileUploadPath=fileItem.getName();

// 上传之后文件的名字要唯一:采用当前上传的系统时间的毫秒数作为文件的名字

String time = System.currentTimeMillis() + "";// 当前系统时间

String postfix = fileUploadPath.substring(fileUploadPath.lastIndexOf("."));//获取文件的后缀名

String fileName = time+postfix;

String contextPath =this.getServletContext().getRealPath("imageTemp");//获取工程中的名为imageTemp的目录

String filePath = contextPath+File.separator+fileName;

File file = new File(filePath);//代表上传文件的目录

FileOutputStream out =  new FileOutputStream(file);

InputStream in = fileItem.getInputStream();

IOUtils.copy(in,out);

IOUtils.closeQuietly(out);//关闭输出流

IOUtils.closeQuietly(in);//关闭输出流

}else {

System.out.println("文件格式错误");

}

}

}

} catch (FileUploadException e) {

System.out.println("文件上传异常");

}

}

}

 

}


客户端的代码如下:
<form action="userImage.do" method="post" enctype="multipart/form-data" >
   请选择要上传的图片:<input type="file" name="userImage" size="10"  "/>
   用户名:<input type="text" size="20" name="userName"/><br/>
   <input type="submit" value="上传文件"/>
   </form>
注意:提交表单的时候,要提交的元素一定要加上name属性,否则无法得到表单中元素的值
web.xm 的配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
   <servlet-name>userUpload</servlet-name>
   <servlet-class>com.cusoft.servlet.ImageUploadServlet</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>userUpload</servlet-name>
   <url-pattern>/userImage.do</url-pattern>
  </servlet-mapping>
</web-app> 
注意 :任何<servlet></servlet>标签一定要位于 <servlet-mapping></servlet-mapping>之前,有多个<servlet/> 和<servlet-mapping/>也是如此

 

分享到:
评论
2 楼 zuo_huai 2012-04-12  
呵呵……,不客气
1 楼 lg_asus 2012-03-08  
呵呵,不错的东东。多谢

相关推荐

    commons-fileupload-1.3.3.jar和commons-io-2.6.jar

    总的来说,`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Java开发中不可或缺的工具,它们大大简化了文件上传的实现,同时也提供了良好的错误处理和资源管理机制,使得文件上传操作变得更加可靠和高效。...

    java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载

    本教程将深入讲解如何使用Java Servlet、Apache Commons IO库(版本2.4)以及Apache Commons FileUpload库(版本1.3)来实现这一功能。 一、Apache Commons IO与FileUpload库介绍 Apache Commons IO是一个Java库,...

    commons-fileupload-1.2.1.jar 和commons-io-1.4.jar

    Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库,它们在Web应用中被广泛使用。这两个库分别提供了不同的功能,但在处理文件上传时常常一起使用。 `commons-fileupload-1.2.1....

    最全的common-FileUpload.jar包

    在Java开发中,上传文件是一项常见的任务,Apache Commons FileUpload库正是为此而设计的。这个"最全的common-FileUpload.jar包"包含了处理HTTP请求中的多部分数据,特别是文件上传的功能。它使得开发者能够方便地从...

    common-fileupload&amp;common-io

    "common-fileupload"和"common-io"是Apache Commons项目中的两个重要组件,它们为处理文件上传和输入/输出提供了强大的支持。接下来,我们将详细讨论这两个库的功能、使用方法及其在JSP应用中的重要性。 Apache ...

    common-io,common-fileupload.jar等jar包

    在Java开发中,`common...总之,`common-io`和`common-fileupload`是Java开发中的强大工具,它们简化了常见的I/O操作和文件上传处理,提高了开发效率。了解并熟练运用这些库,能帮助开发者更好地应对实际项目中的挑战。

    commons-fileupload-1.2.2.jar和commons-io-2.4.jar包

    在与FileUpload库配合使用时,IO库可以方便地进行文件的读写和临时存储,确保文件上传过程的稳定性和安全性。 这两个库的协同工作流程大致如下: 1. **接收请求**:服务器端接收到带有文件的HTTP请求,请求内容...

    使用Common-fileUpload 上传文件 读取文件内容

    本篇文章将详细讲解如何使用`Commons-FileUpload`进行文件上传,并读取上传文件的内容。 首先,了解`Commons-FileUpload`的工作原理。它解析HTTP请求,将多部分的数据分割成单独的部分,这些部分可以是文本或文件。...

    commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar jar 文件

    commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar jar 文件。 commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar 案例上传: http://hi.baidu.com/lichao77821/blog commons-fileupload-1.2.1.jar和commons-...

    commons-fileupload-1.3.3&commons-fileupload-1.3.3架包和代码.rar

    描述中提及的"commons-io-2.2"是Apache Commons IO库的2.2版本,这是一个非常实用的Java I/O工具集,包含了大量与输入/输出相关的实用类,如文件操作、流操作、转换和比较等,它是FileUpload库的一个依赖,提供了...

    commons-fileupload-1.2.2 common-io-2.0.1

    例如,你可以用Commons FileUpload来处理文件上传请求,然后使用Commons IO来操作上传后的文件,最后通过Commons BeanUtils来处理和验证上传文件的相关属性信息。这些库的结合使用,大大提升了开发效率,减少了代码...

    common-fileupload文件上传及下载

    在`MyProject`这个压缩包中,可能包含了使用`common-fileupload`进行文件上传和下载的示例代码,你可以解压后查看具体实现。通过阅读和理解代码,可以更好地掌握文件上传下载的实践应用。在实际开发中,结合源码和...

    commons-fileupload-1.2.jar和commons-io-1.3.2.jar

    该组件简单易用,可实现一次上传一个或多个文件,并可限制文件大小。 -下载后解压zip包,将commons-fileupload-1.1.1.jar,和commons-io-1.2.jar(这里我们用的是更新的版本,但是用法是一样的)复制到tomcat的webapps...

    java中common-fileupload 上传文件demo

    下面,我们将深入探讨如何使用`Commons FileUpload`库在Java中实现文件上传功能,并基于提供的"文件上传demo"进行分析。 首先,我们需要添加`Commons FileUpload`的依赖到我们的项目中。如果你使用的是Maven,可以...

    Common-fileupload组件实现文件上传.pdf

    通过使用Common-fileupload组件,开发者可以轻松地在JSP环境中实现文件上传功能。该组件不仅提供了基本的文件上传功能,还支持高级特性如多文件上传、文件大小限制等。这对于提高Web应用程序的功能性和用户体验非常...

    上传架包commmon-fileupload common-io

    标题中的"上传架包commmon-fileupload common-io"指的是两个常用的Java库,它们分别是Apache Commons FileUpload和Apache Commons IO。这两个库在Java开发中扮演着重要角色,特别是处理文件上传和I/O操作。 Apache ...

    java commons-fileupload1.2.2和common-io.1.3.2文件上传总结心得

    总的来说,Apache Commons FileUpload 和 Commons IO 是处理 Java Web 应用中文件上传和管理的重要工具,它们简化了原本复杂的多部分数据解析和文件操作,提高了开发效率和代码的可读性。在实际应用中,应根据需求...

    commons-fileupload、commons-io文件

    浏览器在上传的过程中是将文件以流的形式提交到服务器端的,如果直接使用Servlet获取上传文件的输入流然后再解析里面的请求参数是比较麻烦,所以一般选择采用apache的开源工具common-fileupload这个文件上传组件。

    commons-fileupload.jar和commons-io.jar

    这个例子展示了如何使用Apache Commons FileUpload和Commons IO处理文件上传。这两个库大大简化了文件上传的实现,使得开发者可以专注于业务逻辑,而不是底层的文件操作细节。同时,它们还提供了许多高级特性,如...

    common-fileupload

    在Java Web开发中,文件的上传和下载是常见的功能需求,`commons-fileupload`组件是Apache Commons项目的一个子项目,专门用于处理HTTP请求中的多部分...通过合理的使用和配置,我们可以实现安全、高效的文件操作功能。

Global site tag (gtag.js) - Google Analytics