• Struts(四)之文件上传、下载


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

      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.jarorg.apache.struts2struts-message.properties

            

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

          常用的Key值:

          

          

      1.4多文件上传

        jsp

        

        struts.xml

        

        动作类中

        

        测试:

          

          

      二、文件下载

        就是一种结果类型(Stream)

        1、文件下载的例子

          创建一个download的动作类

          

          在struts.xml中配置

          

      

        

          

       

  • 相关阅读:
    Mysql 从库的备份中恢复一张表
    my.cnf 配置文件参数解释
    利用mvn deploy命令上传包(转)
    IntelliJ IDEA 项目文件旁边都有0%classes,0% lines covered
    idea启动java Maven项目,出现" java: 程序包xxxx不存在"
    org/apache/poi/POIXMLTypeLoader或者java.lang.NoSuchFieldError: RETURN_NULL_AND_BLANK
    elasticsearch,kibana,logstash.下载
    idea显示 RunDashboard ,多个启动项时列表显示
    写for循环快捷生成方式
    Could not transfer artifact xxx from/to xxx解决方案
  • 原文地址:https://www.cnblogs.com/cxyzyh2017/p/6628055.html
Copyright © 2020-2023  润新知