天天看点

Struts 2的文件上传

Struts 2并未提供自己的请求解析器,也就是说,Struts 2不会自己去处理multipart/form-data的请求,它需要调用其他上传框架来解析二进制请求数据。但Struts 2在原有的上传解析器基础上做了进一步封装,更进一步简化了文件上传。

在Struts 2的struts.properties配置文件中,我们看到了下面的配置代码,它们主要用于配置Struts 2上传文件时的上传解析器。

# 指定使用COS的文件上传解析器  

# struts.multipart.parser=cos  

# 指定使用Pell的文件上传解析器  

# struts.multipart.parser=pell  

# Struts 2默认使用Jakarta的Common-FileUpload的文件上传解析器  

struts.multipart.parser=jakarta  

Struts 2的封装隔离了底层文件上传组件的区别,开发者只要在此处配置文件上传所使用的解析器,就可以轻松地在不同的文件上传框架之间切换。

Struts 2默认使用的是Jakarta的Common-FileUpload的文件上传框架,因此,如果需要使用Struts 2的文件上传功能,则需要在Web应用中增加两个JAR文件,即commons-io-1.3.2.jar和commons-fileupload-1.2.1.jar,将Struts 2项目lib下的这两个文件复制到Web应用的WEB-INF\lib路径下即可。

Struts 2默认使用Jakarta的Common-FileUpload的文件上传,那是因为它们同是Apache组织下的项目,但并不意味着只能使用Jakarta的Common-FileUpload文件上传,我们一样可以在Web应用中使用COS、Pell的文件上传支持。对于开发者而言,使用哪种文件上传支持,几乎没有任何区别——只需要修改struts.multipart.parser常量,并在Web应用中增加相应上传项目的类库即可。

Struts 2的文件上传支持在原有的文件上传项目上做了进一步封装,简化了文件上传的代码实现,取消了不同上传项目上的编程差异。

下面将以Struts 2默认的文件上传支持为例,详细介绍Struts 2文件上传相关方面的知识。