读书人

Struts2文件下传的注意点

发布时间: 2012-12-26 14:39:29 作者: rapoo

Struts2文件上传的注意点

? Struts2文件上传的原理

??Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。

?

? 基本使用步骤:

? 添加fileUpload拦截器? 解决Commons FileUpload的依赖包? 页面使用file类型标签? Action类中使用set方法接收file, filename, fileContentType

??http://struts.apache.org/2.3.1.2/docs/file-upload.html

??http://struts.apache.org/2.3.1.2/docs/file-upload-interceptor.html

?

?

? 使用的注意点:

? 1.struts2的文件上传支持多个文件,在Action类中使用文件数组或List接收。

??http://www.blogjava.net/max/archive/2007/03/21/105124.html

?

? 2.设置fileUpload参数可以过滤文件类型和大小:allowedTypes, maximumSize(以字节为单位)。

 < action name ="fileUpload" class ="tutorial.FileUploadAction" >         < interceptor-ref name ="fileUpload" >             < param name ="allowedTypes" >                 image/bmp,image/png,image/gif,image/jpeg             </ param >              <param name="maximumSize">500000</param>         </ interceptor-ref >         < interceptor-ref name ="defaultStack" />                    < result name ="input" > /FileUpload.jsp </ result >         < result name ="success" > /ShowUpload.jsp </ result >  </ action >
?

? ?allowedType指定的是FileContentType,是依靠Commons FileUpload中德DiskFileItem的属性获取。这里的ContentType是通过上传的文件后缀判断的,并没有实际检查文件类型,所以要确保类型正确需要更多处理。

? ?常用的ContentType:

文件类型常见后缀contentTypeExcel2007xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetExcel2003xlsapplication/vnd.ms-excelWord2003docapplication/msword

?

读书人网 >软件架构设计

热点推荐