快速业务通道

Struts2文件上传(二) 深入FileUploadInterceptor - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24
大小为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]); //将数据拷贝到 上传目录,这里

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号