使用FileUpload上传文件

FielUpload是Apache提供的一个免费的上传组件,在使用它之前,我们需要先下载两个包FileUpload包(http://commons.apache.org/proper/commons-fileupload/)和Commons包(http://commons.apache.org/proper/commons-io/

下面是FileUpload上传的基本步骤:

(1)创建磁盘工厂:DiskFileItemFactory factory = new DiskFileItemFactory() ;
(2)创建处理工具:ServletFileUpload upload = new ServletFileUpload(factory) ;
(3)设置上传文件的大小:upload.setFileSizeMax(3145728) ;
(4)接收全部的内容:List<FileItem> items = upload.parseRequest(request) ;

例子:

DiskFileItemFactory factory = new DiskFileItemFactory() ;	//创建磁盘工厂
factory.setRepository(new File(临时文件夹路径))	;	//创建处理工具
upload.setFileSizeMax(3145728) ;	//设置最大上传文件大小为3MB,3*1024*1024
List<FileItem> items = upload.parseRequest(request) ;		//接收全部内容
Iterator<FileItem> item = items.iterator() ;	//将全部的内容变为Iterator实例
IPTimeStamp its = new IPTimeStamp(request.getRemoteAddr()) ;	//实例化IP时间戳对象
while(item.hasNext()){	//依次取出每一个内容
	try{
		FileItem item = iter.next() ;	//取出每一个上传的文件
		String fieldName = item.getFieldName() ;	//得到表单控件的名称
		if(!item.isFormField()){	//不是普通的文本数据,是上传文件
			File saveFile = null ;	//定义保存的文件
			InputStream input = null ;	//定义文件的输入流,用于读取源文件
			OutputStream output = null ;	//定义文件的输出流,用于保存文件
			input = item.getInputStream() ;		//取得上传文件的输入流
			output = new FileOutputStream(new File(路径+item.getName().split("\\.")[1])) ;	//定义输出文件路径
			byte data[] = new byte[512] ;		//分块保存
			int temp = 0 ;
			while((temp = input.read(data,0,512)) != -1){	//依次读取内容
				output.write(data) ;	//保存内容
			}
		}
	}catch(IOException e){
		throw e ;
	}finally{
		try{
			input.close() ;		//关闭流
			output.close() ;
		}catch(IOException e1){
			throw e1 ;
		}
	}
}
几个方法:

取得文件名称:getName() ;
取得文件类型:getContentType() ;
取得文件大小:getSize() ;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值