zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    C#中实现简单的预警提示功能(语音提示与弹窗提示)
    C#中使用SoundPlayer播放音频文件(wav文件)
    Angular中路由的嵌套-父子路由
    Winform中设置ZedGraph的坐标轴的标题和刻度不显示十次幂
    Angular中使用JS实现路由跳转、动态路由传值、get方式传值
    surprise库官方文档分析(二):使用预测算法
    surprise库官方文档分析(一)
    webpack官方文档分析(三):Entry Points详解
    webpack官方文档分析(二):概念
    webpack官方文档分析(一):安装
  • 原文地址:https://www.cnblogs.com/HeXiaoZhou/p/6425627.html
Copyright © 2011-2022 走看看