`
小杨学JAVA
  • 浏览: 901502 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java commons-fileupload 文件上传

 
阅读更多

转:http://www.cnblogs.com/popping57/p/3258956.html

使用servlet来实现

  1. 配置pom.xml
          <dependency>
    	<groupId>commons-fileupload</groupId>
    	<artifactId>commons-fileupload</artifactId>
    	<version>1.3</version>
          </dependency>
        
  2. servlet
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    	//创建一个文件处理工厂
    	FileItemFactory factory= new DiskFileItemFactory();
    
    	//创建一个存放临时中转的仓库
    	ServletContext servletContext = this.getServletConfig().getServletContext();
    	File repository = (File) servletContext.getAttribute("javax.servlet.context.temdir");
    	((DiskFileItemFactory) factory).setRepository(repository);
    		
    	//创建一个处理上传的处理器
    	ServletFileUpload upload = new ServletFileUpload(factory);
    	try {
    		//获取从表单提交上来的数据,从表单上传的数据会自动被分割,比如一个input:text,input:file,就会被分成两个item
    		List items = upload.parseRequest(req);
    		Iterator iter = items.iterator();
    		while (iter.hasNext()) {
    			FileItem item = iter.next();
    				
    			//检查是否是文件
    			if(item.isFormField()) {
    				//如果不是文件d
    				String name = item.getFieldName();
    				String value =item.getString();
    				System.out.println(name+":"+value);
    			}else {
    			    //如果是文件
    			    String fieldName = item.getFieldName();
    			    //这个fileName是上传文件名
    			    String fileName = item.getName();
    			    System.out.println(fieldName+":"+fileName);
    			    //新建一个文件,用于存储上传的文件
    			    File uploadFile = new File("D:\\",fileName);
    			    item.write(uploadFile);
    			}
    		}
    	} catch (FileUploadException e) {
    		e.printStackTrace();
    	} catch (Exception e) {
    		e.printStackTrace();
    	}
       }
    
  3. 在web.xml中配置好servlet
  4. 前端页面
    <form action="/swfupload/fupload" enctype="multipart/form-data" method="post"></form>
     在这里,enctype的类型一定要是multipart/form-data,method要是post

使用spring mvc controller来实现

  1. 大部分都是和上面的一样,而配置spring mvc可以在前面的博客找到
  2. 配置controller
    	@RequestMapping(value="/upload.do",method=RequestMethod.POST)
    	public void upload(HttpServletRequest request, HttpServletResponse response) {
    		//定义一个文件上传工厂,配置一些上传限制
    		DiskFileItemFactory factory = new DiskFileItemFactory();
    		factory.setRepository(new File("D:\\"));
    		
    		//上传实现方法
    		ServletFileUpload upload = new ServletFileUpload(factory);
    		try {
    			//获取表彰提交
    			List items = upload.parseRequest(request);
    			Iterator iter = items.iterator();
    			while (iter.hasNext()) {
    				FileItem item = iter.next();
    				
    				if (item.isFormField()) {
    					//当不是文件的时候
    					String filedName = item.getFieldName();
    					String value = item.getString();
    					System.out.println(filedName + ":" + value);
    				} else {
    					//是文件的时候
    					String fileName = item.getName();
    					String path = ContextLoader.getCurrentWebApplicationContext().getServletContext().getRealPath("/");
    					System.out.println(path);
    					//新建一个文件,并以上传文件名为文件名
    					File uploadFile = new File(path,fileName);
    					//保存上传文件
    					item.write(uploadFile);
    				}
    			}
    		} catch (FileUploadException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    @RequestMapping指定了访问的路径和访问的类型
  3. 前台页面
    <form action="/swfupload/upload.do" enctype="multipart/form-data" method="post">
    其实swfupload是项目名
分享到:
评论

相关推荐

    commons-fileupload文件上传实例代码

    在Java Web开发中,文件上传是一项常见的功能,Apache Commons FileUpload库为开发者提供了方便、灵活的文件上传解决方案。本教程将深入讲解如何使用`commons-fileupload`库处理中文乱码问题以及实现多文件上传。 ...

    commons-fileupload 文件上传 图片上传 demo

    在`描述`中提到的`commons-fileupload-1.2.2.jar`和`commons-io.jar`是实现文件上传功能所必需的依赖库。`commons-fileupload-1.2.2.jar`是核心库,包含了文件上传的处理逻辑;`commons-io.jar`则是Apache Commons ...

    commons-fileupload组件上传问题

    通过阅读这篇博客,开发者可以更好地理解如何在Java Web应用中使用`commons-fileupload`组件实现安全、高效的文件上传功能。 总结起来,`commons-fileupload`组件是处理HTTP文件上传的利器,它简化了文件上传的流程...

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

    Apache Commons FileUpload是一个Java库,专门用于处理HTTP协议中的多部分文件上传请求。在Web应用程序中,它允许用户上传文件到服务器,这对于处理用户提交的图片、文档或其他类型的数据至关重要。 描述中提及的...

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

    在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...

    commons-fileupload-1.3.3.jar commons-io-2.5.jar

    总的来说,`commons-fileupload-1.3.3.jar` 和 `commons-io-2.5.jar` 这两个库为Java开发者提供了强大而便捷的文件上传解决方案,它们简化了原本复杂的过程,使开发者可以更专注于业务逻辑,而不是底层的文件处理...

    commons-fileupload-1.3.jar和commons-io-1.2.jar.zip

    Apache Commons FileUpload和Commons IO是两个非常重要的库,它们为Java提供了强大的文件上传和处理能力。在这个场景中,我们关注的是"commons-fileupload-1.3.jar"和"commons-io-1.2.jar"这两个文件,它们被打包在...

    commons-fileupload.jar和commons-io.jar

    Apache Commons FileUpload和Commons IO两个库是Java中处理文件上传的关键组件,它们为SpringMVC和MyBatis这样的框架提供了强大的支持。本篇文章将深入探讨这两个库以及它们在图片处理中的作用。 首先,`commons-...

    commons-fileupload.rar;包括commons-fileupload-1.3.1-bin和commons-io-2.4

    Commons FileUpload是Apache软件基金会的一...在实际开发中,结合`commons-fileupload`和`commons-io`这两个库,可以方便地实现在Java Web应用中的文件上传功能,并且可以自定义各种策略以满足特定的安全性和性能要求。

    文件上传两个jar包commons-fileupload-1.3.1和commons-io-2.4

    总的来说,`commons-fileupload-1.3.1.jar` 和 `commons-io-2.4.jar` 在Java Web开发中是处理文件上传不可或缺的工具,它们为开发者提供了强大的支持,使得文件上传功能的实现变得既高效又安全。在开发过程中,正确...

    commons-fileupload及源码

    总结起来,Apache Commons FileUpload是一个强大的、高度可配置的文件上传组件,它简化了Java Web应用中处理文件上传的复杂性。通过结合使用`commons-fileupload-1.3.1.jar`和`commons-fileupload-1.3.1-sources.jar...

    commons-fileupload实现文件上传下载

    ### Commons-FileUpload 实现文件上传下载 #### 知识点概述 Commons-FileUpload 是 Apache 提供的一个用于处理 HTTP 文件上传的组件。它基于 Servlet 规范,并且能够解析来自 `multipart/form-data` 编码类型的 ...

    commons-fileupload-1.2.1.jar与commons-io-1.3.2.jar

    在处理文件上传时,`commons-fileupload`可能会依赖`commons-io`来完成一些底层的文件操作,比如读写文件、复制文件、检查文件是否存在等。`1.3.2`同样表示这个库的一个特定版本,它可能包含了更多的功能和改进。 ...

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

    Commons FileUpload和Commons IO是Java开发中两个非常重要的库,尤其在处理文件上传功能时。这两个库由Apache软件基金会维护,是许多Java Web应用程序的标准组成部分。 `commons-fileupload-1.3.2.jar`是Apache ...

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

    Apache Commons FileUpload与Apache Commons IO是Java开发中处理文件上传的两个重要库。它们为开发者提供了强大而灵活的工具,使得在Web应用中处理文件上传变得简单易行。 `commons-fileupload-1.2.1.jar`是Apache ...

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

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

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

    总之,`commons-fileupload-1.2.2.jar`和`commons-io-2.4.jar`是Java Web开发中处理文件上传和下载不可或缺的工具。尽管它们的版本可能不是最新的,但依然能提供可靠的功能,并且在很多现有的系统中广泛使用。理解并...

    java文件上传jar(commons-fileupload-1.2.1.jar,commons-io-2.0.1.jar)

    通过结合使用Apache Commons FileUpload和Commons IO,开发者可以构建出高效且稳定的文件上传功能,同时避免了自己实现这些复杂逻辑的麻烦。这两个库的兼容性良好,广泛应用于各种Java Web项目中,是Java开发者的...

    commons-fileupload文件上传实例

    Apache Commons FileUpload是Java中处理文件上传的一个强大库,它简化了这一过程。本教程将详细介绍如何利用commons-fileupload实现文件上传功能,并提供一个简单的实例。 **一、Apache Commons FileUpload简介** ...

    commons-fileupload组件和commons-io组件

    Commons-Fileupload是Apache Commons项目的一个子项目,专门设计用于处理Servlet容器中的文件上传请求。它提供了一套API,使得开发者可以方便地解析HTTP请求中的多部分(multipart)数据,这些数据通常包含文件上传...

Global site tag (gtag.js) - Google Analytics