Struts2文件上传(二) 深入FileUploadInterceptor
2009-09-18 00:00:00 来源:WEB开发网框架为我们所做的就是这些了,剩下的就是文件拷贝了。现在我们来注意下Action的这几个参数,其中File对象(当然也可能是数组或List),这时他们已经指向系统临时目录里的某个文件,或是系统的内存里的数据了。在我们传输数据时,实际上是从这个临时文件或内存将数据库拷贝到上传目录里去的,当执行完Action之后,FileUploadInterceptor会将临时目录里所有临时文件删除,这也是为什么上传文件完成后会有一些日志显示说删除了一些临时文件的原因。
现在实现一个简单的文件上传,首先熟悉下几个参数配置:
1.struts.multipart.parser 配置request解析器,Struts2默认为jakarta 也就是JakartaMultiPartRequest,我们也 可以自己开发自己的解析器。
2.struts.multipart.saveDir 上传文件的临时保存目录,我们知道Common-FileUpload需要提供一个临时目录的。如果没有设置,则是 ServletContext.getAttribute("javax.servlet.context.tempdir")对应的目录,对应于 Common-FileUpoad中的repository参数。
3.struts.multipart.maxSize 这个是配置文件上传总大小,单位为B,默认大小为2097152b,对应于Common-FileUpload中的sizeMax参数。
在配置FileUploadInterceptor时候也有几个参数:
1.maximumSize 这是设置允许上传的单个文件的大小,如果某个文件大小大于这个大小,则会产生一个错误保存到Action中,错误的i18n的key为struts.messages.error.file.too.large
2.allowedTypesSet 这是设置允许上传文件的类型,多个类型以逗号“,”隔开,如果某个文件的类型没在这个设置之类,则会产生一个错误保存到Action中,错误的i18n的的key为struts.messages.error.content.type.not.allowed
更多精彩
赞助商链接