一、文件的上传(拦截器)

  1.1、文件上传的条件   

    表单method必须是post;
    enctype取值必须是multipart/form-data;
    提供文件选择域。

  1.2、文件上传的例子

    upload1.jsp

    

    struts.xml的配置编写

    

  动作类编写

  

    测试:

    

  记得去tomcat的发布目录下查找上传的文件

  

  1.3、文件上传的配置

    1.3.1、文件上传的大小限制(2M)  

    从default.properties文件中

    如果超过了默认的大小,upload拦截器就会转向一个input的逻辑视图

    如果没有在struts.xml中配置则会出现

    

    在action中配置了<result type="input">/upload.jsp</result>

     

    超过了上传的文件大小:

    

    1.3.2、改变文件上传大小的限制

      在struts.xml中改变struts.properties文件中的常量 

      

    1.3.3、限制文件上传类型

        1.通过限制文件的扩展名

        怎么限制?通过给fileupload拦截器注入参数

        

        当你在upload.jsp中选择的是txt文件时

          

      2.通过限制文件上传的MIME类型

      

      当你上传了非限定的MIME类型时,有如下错误提示

      

    1.3.4、出错后的错误信息中文提示(Struts2中的所有文件都是基于国际化的)

      默认信息提示在:struts2-core.jar\org.apache.struts2\struts-message.properties

        

      解决办法:用国际化消息资源包,把对应的key取值改为中文即可。

      常用的Key值:

      

      

  1.4多文件上传

    jsp

    

    struts.xml

    

    动作类中

    

    测试:

      

      

  二、文件下载

    就是一种结果类型(Stream)

    1、文件下载的例子

      创建一个download的动作类

      

      在struts.xml中配置