• struts2 下载文件


    文件下载

    在struts2中如何实现文件下载


    1.添加一个文件下载的action类

      public class DownloadAction{

         private InputStream logoStream;

         public InputStream getLogoStream(){
            
            try{

                this.fileName = brand.getLogoUrl();
                
                //获取被下载的文件的绝对路径
                String filePath = ServletActionContext.getRequest().getServletContext().getRealPath(brand.getLogoUrl());
                
                System.out.println(filePath);
                
                //读取被下载的文件
                logoStream = new FileInputStream(filePath);
                
                return logoStream;
            
            }catch(Exception ex){
                
                ex.printStackTrace();
                return null;
            }
        }
      }

    2.在该类中添加一个action方法,返回success

      public class DownloadAction{

        public String download(){

          return "success";

        }

      }

    3.在struts.xml中配置该action,并且result的结果类型为stream

      <action name="download" class="...DownloadAction" method="download">
        <result name="success" type="stream">

        </result>
      </action>

    4.在result中设置参数inputName,该参数的值必须为action类中的一个数据类型为InputStream的属性。

      <action name="download" class="...DownloadAction" method="download">
        <result name="success" type="stream">
          <param name="inputName">logoStream</param>
        </result>
      </action>

    5.控制下载文件的文件名称:在result中添加参数:contentDisposition

     
      <action name="download" class="...DownloadAction" method="download">
        <result name="success" type="stream">
          <param name="inputName">logoStream</param>
          <param name="contentDisposition">attachment;filename="${fileName}"</param>
        </result>
      </action>

      注意:${fileName} 中的fileName为action类中的属性

    6.控制文件的类型:在result中添加参数:contentType

      contentType:

         word : application/msword

         excel : application/vnd.ms-excel

         ppt   : application/vnd.ms-powerpoint

         html  : text/html

         文本文件 : text/plain

         可执行文件  :  application/octet-stream

     
      <action name="download" class="...DownloadAction" method="download">
        <result name="success" type="stream">
          <param name="inputName">logoStream</param>
          <param name="contentDisposition">attachment;filename="${fileName}"</param>
          <param name="contentType">application/octet-stream</param>
        </result>
      </action>

  • 相关阅读:
    html实现打印预览效果
    layui-table 对表格数据进行处理之后的排序问题
    layui-table与layui-rate评分转换成星级的使用
    使用apache的poi来实现数据导出到excel的功能——方式二
    java获取配置文件中的key=value值
    layDate——设置最大日期不能超过当前日期
    layDate——初步使用
    echarts使用——柱状图
    layui内部定义的function,外部调用时候,提示某函数未定义现象解决方案
    layui table异步调用数据的时候,数据展示不出来现象解决方案
  • 原文地址:https://www.cnblogs.com/HeXiaoZhou/p/6425627.html
Copyright © 2020-2023  润新知