`
minzaipiao
  • 浏览: 148557 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

commons-fileupload的文件上传

阅读更多
记得以前写过用commons-fileupload实现的文件上传,可现在又差不多忘了,
于是乎今天在网上找了写资料拼拼凑凑又重新写过了一遍,在此做个备忘!

public class FileUpload extends HttpServlet {


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		response.setCharacterEncoding("UTF-8");
		PrintWriter out = response.getWriter();
		
		final long MAX_SIZE= 10 * 1024 * 1024;
		
		String fileFolder = this.getServletContext().getRealPath("/userFiles");
		
		//判断该请求是否是文件上传的请求
		boolean isMultipart = ServletFileUpload.isMultipartContent(request);
		
		if(isMultipart){
			DiskFileItemFactory factory = new DiskFileItemFactory();
			//设置上传文件时用于临时存放文件的内存大小
			factory.setSizeThreshold(10 * 1024);
			//设置存放临时文件的目录
			factory.setRepository(new File(fileFolder+"/temp"));
			
			ServletFileUpload upload = new ServletFileUpload(factory);
			//设置最大上传尺寸
			upload.setFileSizeMax(MAX_SIZE);
			
			try {
				List<FileItem> filelist = upload.parseRequest(request);
				for(Iterator<FileItem> it = filelist.iterator(); it.hasNext() ; ){
					FileItem item = it.next();
					//判断是form表单域还是上传文件file域
					if(item.isFormField()){
						//处理form表单域
						String name = item.getFieldName();
						String value = item.getString();
					}else{
						//处理fileUpload
						//得到表单域的名称
						String fieldName = item.getFieldName();
						//取得文件类型
						String contentType = item.getContentType();
						//文件的全路径
						String fileName = item.getName();
						//得到去除路径的文件名
						int index = fileName.lastIndexOf("\\");
						fileName = fileName.substring(index+1);
						
						//构建一个文件
						File uploadFile = new File(fileFolder ,fileName);
						//保存文件
						item.write(uploadFile);
						out.println("文件上传成功");
					}
				}
			} catch (FileUploadException e) {
				if(e instanceof FileSizeLimitExceededException ){
					out.println("文件太大,允许上传的最大大小为10MB");
				}
			} catch (Exception e) {
				out.println(e);
			}
		}
	}

}
分享到:
评论

相关推荐

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

    commons-fileupload组件上传问题

    `commons-fileupload`组件是Apache Commons项目中的一个子项目,主要负责处理HTTP协议下的文件上传功能。在Web应用中,用户可能需要上传图片、文档等文件,这时`commons-fileupload`就发挥了重要作用。本篇文章将...

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

    在这个场景中,`commons-fileupload-1.3.1.jar` 和 `commons-io-2.4.jar` 是两个至关重要的库,它们提供了强大的文件上传支持。 `commons-fileupload-1.3.1.jar` 是Apache Commons FileUpload项目的实现,这是一个...

    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实现文件上传下载

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

    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.5.jar

    `commons-fileupload-1.3.3.jar` 和 `commons-io-2.5.jar` 是Apache Commons项目中的两个重要库,它们提供了强大的文件上传功能,使得开发者可以轻松地处理用户通过表单提交的文件。 Apache Commons FileUpload是...

    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-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组件和commons-io组件

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

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

    而`commons-io-2.4`是Apache Commons IO库的2.4版本,它是处理输入/输出操作的工具集,与FileUpload配合处理文件上传时,常被用到。 文件上传在Web应用中的实现并不直接内置在Servlet API中,因此,`commons-...

    使用commons-fileupload上传文件

    Apache Commons FileUpload是Apache组织的一个子项目,专注于处理HTTP文件上传。这个组件提供了一个简洁的API,使得开发者能够轻松地在Java应用中处理由浏览器发送的多部分(multipart)HTTP请求,即通常的文件上传...

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

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

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

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

    commons-fileupload文件上传实例

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

    commons-fileupload及源码

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

    commons-fileupload.jar和commons-io.jar

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

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

    新建一个servlet: FileUpload.java用于文件上传: package com.drp.util.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet....

    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 ...

Global site tag (gtag.js) - Google Analytics