StrutsCatalog系列(5)--文件上传

/**
作者:Joe Vienneau
译者:Rifoo Technology(http://www.rifoo.com
时间:2005-11-10
备注:转载请保留以上声明
**/

文件上传的简单范例

HTML

HTML页面需要做两件事情,首先,表单需要指定enctype="multipart/form-dataand",其次需要一个类型为file的<input>表单控件。

   <form name="myForm" method="post" 
action="/mywebapp/uploadMyFile.do"
enctype="multipart/form-data"> Select File: <input type="file" name="myFile">
</br> <input type="submit" value="Upload File"> </form>

JSP

上面的HTML标签用Struts标签代替就是以下代码:

   <html:form action="/uploadMyFile.do" 
enctype="multipart/form-data"> Select File: <html:file property="myFile"> </br> <html:submit value="Upload File"/> </html:form>

ActionForm

这个ActionForm需要一个FormFile类型的字段。

一般的ActionForm
    import org.apache.struts.upload.FormFile;

    public class MyActionForm extends ActionForm {

       private FormFile myFile;

       public void setMyFile(FormFile myFile) {
           this.myFile = myfile;
       }

       public FormFile getMyFile() {
           return myFile;
       }
    }
动态ActionForms

在struts-config.xml文件中写上:

   <form-bean name="myForm" 
type="org.apache.struts.action.DynaActionForm"> <form-property name="myFile"
type="org.apache.struts.upload.FormFile"/> </form-bean>

在Action中需要怎么写呢?

其实没什么特殊的,就象和得到其他属性一样,从ActionForm中得到FormFile属性,得到后可以随意进行处理。比如我们可以从FileForm中得到文件名,文件大小,文件内容

    public ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response) 
throws Exception { MyActionForm myForm = (MyActionForm)form; // Process the FormFile FormFile myFile = myForm.getMyFile(); String contentType = myFile.getContentType(); String fileName = myFile.getFileName(); int fileSize = myFile.getFileSize(); byte[] fileData = myFile.getFileData(); ... }

文件上传的配置

在struts-config.xml的<controller>element中可以设置如下参数来配置文件上传:

  • bufferSize - 处理文件上传的缓冲区大小,单位是字节。
    默认是4096byte。

  • maxFileSize - 允许上传文件的大小。可以使用K,M,G为单位。
    默认是250M。

  • multipartClass - muiltpart请求处理器类的全局标识名。默认是org.apache.struts.upload.CommonsMultipartRequestHandler

  • tempDir - 处理文件上传的临时目录。

还有一种可选的文件上传插件的方式可提供使用,那就是实现
org.apache.struts.upload.MultipartRequestHandler接口。
可以在struts-config.xml的<controller>的multipartClass
来指定这个实现给接口的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值