大小为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
3.allowedExtensionsSet这是设置允许上传 文件的后缀,多个类型以逗号“,”隔开,如果某个文件的后缀没在这个设置之类,则会产 生一个错误保存到Action中,错误的i18n的的key为 struts.messages.error.file.extension.not.allowed
struts.xml配置示例:
Xml代码
<struts>
//配置文件保存的临时目录
<constant name="struts.multipart.saveDir" value="C:\Documents and Settings\bond\My Documents\temp"></constant>
//配置上传总大小
<constant name="struts.multipart.maxSize" value="1024102400"></constant>
<package name="strutsDemo" extends="struts-default">
<action name="Upload" method="upload" class="com.bond.action.LoginAction">
//文件上传的保 存目录
<param name="savePath">/upload</param>
<result name="success">/success.jsp</result>
<result name="error">/failure.jsp</result>
<interceptor-ref name="fileUpload">
//单个文件允许的大小
<param name="maxinumSize">10240000000</param>
//允许上传的文件类型,可以到% Tomcat_home%/conf下的web.xml文件中找到所有文件类型的类型名
<param name="allowedTypesSet">application/zip,application/pdf,image/gif</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
</action>
</package>
</struts>
这里我们配置了fileUpload拦截器,我们还 必须吧dufaultStack加上,由于defaultStack中已经包含了fileUpload拦截器,所以fileUpload拦截器 会执行俩遍,所以我们会在日志信息中看到俩次清除临时文件的记录。
Struts2文件上传(二) 深入FileUploadInterceptor(2)
时间:2010-01-06 javaeye zhanghong
UploadAction:
Java代码
public class UploadAction extends ActionSupport {
// 必须的参数,参数名与表单名相同,如果一个表单名对应多个上传文件,
//则必须为数组或 List
private File[] upload;
//必须的参数,格式:表单名+ContentType,表示上传文 件类型
private String[] uploadContentType;
//必须的参数,格式:表单名+FileName ,表示上传的文件名
private String[] uploadFileName;
//文件保存目录
private String savePath;
public LoginAction() {
}
public String upload() throws Exception {
for (int i=0;i<getUpload().length;i++) {
FileInputStream in = new FileInputStream(getUpload()[i]);
FileOutputStream out = new FileOutputStream(getSavePath()+"\\"+getUploadFileName()[i]);
//将数据拷贝到 上传目录,这里
|