apache commons fileupload 1.3.1(九)FileUploadBase部分

近段时间,对apache commons fileupload的源码做了深入的了解,在此把一些见解与大家分享。

今天就简介一下commons fileupload的FileUploadBase部分。


FileUploadBase就像是FileUpload组件的总线,串联起各个部分。其本身提取http包的各个部分然后交由具体的类来解析,从类图我们就能看出它是该组件最庞杂的部分。

org.apache.commons.fileupload.FileUploadBase

该类实现了一些基本的FileUpload功能,但其自身不处理解析部分。其主要工作就是从http中提取出各个属性然后根据属性来调用和传递具体的FileItemFactory类对象来实现解析文件上传的功能。

 

org.apache.commons.fileupload.FileUploadBase#FileItemIteratorImpl

该类是FileUploadBase的内部类,同时也是FileItemIterator的实现类。其作用是实现一个FileItem的迭代器在FileUploadBase内部被调用。但需要注意的是其next()返回的不是FileItem而是FileItemStream

 

org.apache.commons.fileupload.FileUploadBase#FileItemIteratorImpl#FileItemStreamImpl

该类代表了上传的FileItem的输入输出流,是FileItemIteratorImpl.next()返回的具体类。

 

org.apache.commons.fileupload.FileUploadBase#FileSizeLimitExceededException

该异常会接收一个指定的大小,当文件超过指定大小时会抛出异常。

 

org.apache.commons.fileupload.FileUploadBase#FileUploadIOException

该异常代理了一个FileUploadException,实际上该异常只扩展了异常原因信息的记录。

 

org.apache.commons.fileupload.FileUploadBase#InvalidContentTypeException

当解析时发现请求不是一个文件上传请求时抛出该异常。

 

org.apache.commons.fileupload.FileUploadBase#IOFileUploadException

该异常代理了一个IOException,实际上该异常只扩展了异常原因信息的记录。

 

org.apache.commons.fileupload.FileUploadBase#SizeException

当请求的文件大小超过允许的最大值时抛出该异常。

 

org.apache.commons.fileupload.FileUploadBase#SizeLimitExceededException

当请求的文件大小超过允许的最大值时抛出该异常,从类名上就可以看出异常原因,所以比SizeException可读性更好。

 

org.apache.commons.fileupload.FileUploadBase#UnknownSizeException

但不知道文件大小时,即content-length属性未传、或包含-1时抛出。从1.2开始,content-length已经不再请求,因此该异常被过时。

 

org.apache.commons.fileupload.FileUpload

该类代理了FileItemFactory,并通过继承FileUploadBase来实现各种通用解析功能。其内部只有FileItemFactory对象的gettersetter方法,以方便其子类使用。

 

org.apache.commons.fileupload.DiskFileUploadServletFileUploadDiskFileItemFactory合用代替

处理文件上传的高级API。这个类可实现单HTML表单上传多文件的功能,只需使用符合RFC 1867multipart/mixed作为encoding type即可对接该功能。使用arseRequest(HttpServletRequest)方法即可获取表示上传文件的FileItem列表。每个临时文件对象都会根据其大小来判断是存在内存还是存在硬盘的临时文件目录。

 

org.apache.commons.fileupload.FileUploadException

当解析数据包出现错误时会抛出此异常。

 

org.apache.commons.fileupload.InvalidFileNameException

当文件名出现空格字符时抛出该异常。




ONE FOR IT是一个呆萌CTO打理的资讯读物,每天只为你准备一篇IT行业新鲜资讯。互联网的前沿,一篇就够了。(ID:OFI)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值