使用commons-fileupload进行上传

需要使用的包

这两个包在Apache官网上可以下载得到

commons-fileupload-1.3.1.jar是Apache的一个开源项目,废话不说直接说吧

前段页面

<form action="GetData" method="post" enctype="multipart/form-data">
			输入网址或者文字:<input type="text" value="" name="text" /><br /> <input
				type="file" value="上传" name="update" /> <br /> <input type="submit"
				value="生成" id="bu" />
		</form>

注意 需要加上

enctype="multipart/form-data"

使用的是servlet

// 得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
		String savePath = this.getServletContext().getRealPath("/upload");
		File file = new File(savePath);
		// 判断上传文件的保存目录是否存在
		if (!file.exists() && !file.isDirectory()) {
			//目录不存在,需要创建");
			file.mkdir();// 创建目录
		}
		try {
			// 使用Apache文件上传组件处理文件上传步骤:
			// 1、创建一个DiskFileItemFactory工厂
			DiskFileItemFactory factory = new DiskFileItemFactory();
			// 2、创建一个文件上传解析器
			ServletFileUpload upload = new ServletFileUpload(factory);
			// 解决上传文件名的中文乱码
			upload.setHeaderEncoding("UTF-8");
			// 3、判断提交上来的数据是否是上传表单的数据
			if (!ServletFileUpload.isMultipartContent(request)) {
				return;
			}
			// 4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
			List<FileItem> list = upload.parseRequest(request);
			String value = null;
			String filename = null ;
			for (FileItem item : list) {
				// 如果fileitem中封装的是普通输入项的数据
				if (item.isFormField()) {
					// 解决普通输入项的数据的中文乱码问题
					value = item.getString("UTF-8");

				} else {// 如果fileitem中封装的是上传文件
						// 得到上传的文件名称,
					filename = item.getName();
					if (filename == null || filename.trim().equals("")) {
						continue;
					}
					filename = filename.substring(filename.lastIndexOf("\\") + 1);
					// 获取item中的上传文件的输入流
					InputStream in = item.getInputStream();
					// 创建一个文件输出流
					FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
					// 创建一个缓冲区
					byte buffer[] = new byte[1024];
					// 判断输入流中的数据是否已经读完的标识
					int len = 0;
					// 循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
					while ((len = in.read(buffer)) > 0) {
						// 使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\"+ filename)当中
						out.write(buffer, 0, len);
					}
					// 关闭输入流
					in.close();
					// 关闭输出流
					out.close();
					// 删除处理文件上传时生成的临时文件
					item.delete();
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

有注释。基本就这样 欧克了

时间: 2024-08-03 00:53:16

使用commons-fileupload进行上传的相关文章

commons.fileupload 文件上传

编辑jsp页面获取文件 1 <html> 2 <head> 3 <base href="<%=basePath%>"> 4 5 <title>My JSP 'upload.jsp' starting page</title> 6 7 <meta http-equiv="pragma" content="no-cache"> 8 <meta http-equi

fileupload文件上传

在使用java开发文件上传时,网络上有很多不一样的工具.但是每次如果都需要开发一次,对于使用者来说,这个过程是浪费时间的.所以我们有必要选取其中一个适合自己的文件上传组件,然后对其进一步分装,形成自己的开发工具类.下面我针对自己的工程,对fileupload进行了封装. fileupload是apache的一个组件,要想使用fileupload,需要用到下面两个jar:commons-fileupload-1.3.1.jar,commons-io-1.1.jar(版本不一样,可能相关jar包不一

改变FileUpload文件上传控件的显示方式,确认后上传

一.Aspx页面: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="FileUploadDemo.aspx.cs" Inherits="WebApplication1.FileUploadDemo" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu

ASP.NET中扩展FileUpload的上传文件的容量

ASP.NET中扩展FileUpload只能上传小的文件,大小在4MB以内的.如果是上传大一点的图片类的可以在web.config里面扩展一下大小,代码如下 <system.web> <!--配置文件上传大小,该配置是上传文件的总大小不超过15MB==15360KB,缓存阈值改为100kB,这样可以上传稍微大一点的图片--> <httpRuntime maxRequestLength="15360" requestLengthDiskThreshold=&

(转)ASP.NET(C#)FileUpload实现上传限定类型和大小的文件到服务器

上传文件有两个主要的目的地,一个是服务器,另一个是数据库,ASP.NET内置了FileUpload这个上传控件,文本框显示用户选择的文件的全名. 其属性主要包括: ContenLength:上传文件大小,单位:字节 FileName:文件名称 HasFile:是否选择了文件 例子:测试环境.net 2.0(内有详细说明) default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile=&q

ASP.NET(C#)FileUpload实现上传限定类型和大小的文件到服务器&lt;from Copying&gt;

2009-02-15 11:52:54|  分类: 默认分类 |  标签: |举报 |字号大中小 订阅 ASP.NET(C#)FileUpload实现上传限定类型和大小的文件到服务器 2009-01-07 23:29 上传文件有两个主要的目的地,一个是服务器,另一个是数据库,ASP.NET内置了FileUpload这个上传控件,文本框显示用户选择的文件的全名. 其属性主要包括: ContenLength:上传文件大小,单位:字节 FileName:文件名称 HasFile:是否选择了文件 例子:

JSP页面/Apache FileUpload组件上传文件的同时,传递其他参数的方法

Spring3.0+Apache Tomcatv7.0+JDK1.7.0_u45+J2EE1.4验证通过. 需求:使用JSP页面上传文件时,同时需要传递相关参数. 1.  需要将form设置为enctype="multipart/form-data"method="post"参数: 2.  由于此时URL参数不能通过request.getParameter()获得,所以为了让@RequestMapping中设置的params="command=upload

java FileUpload 组件上传文件

Commons FileUpload Apache提供的一个组件,可以很方便的让我们处理客户端上传的文件, 下载地址 http://commons.apache.org/proper/commons-fileupload/ 下载commons-fileupload.jar,还有其依赖包 commons-io.jar一同下载好,导入工程 有点奇葩的是,在tomcat下已经把這个组建集成了,但是不能正常使用,其源码基本上是一样的. 正确的包名应该是這个:org.apache.commons.file

简单的FileUpload文件上传

引入jar包:commons-fileupload-1.3.1.jar,commons-io-1.3.2.jar 前台HTML: <form action="./upload" method="post" enctype="multipart/form-data"> <table> <tr> <td><label>用户名:</label></td> <td&

jquery插件fileupload图片上传(前端如何处理)

1.页面首先引入jquery,版本不要低于1.6 <script src="../js/jquery.min.js"></script>2.其次页面引入对应的这个五个js,按顺序放置 <script src="../js/jquery.ui.widget.js"></script> <script src="../js/jquery.iframe-transport.js"></s