• struts文件下载


    struts2文件下载,根据浏览器的不同会有不同的错误出现。有的在ie下正常,但是到了火狐就不可以了。具体原因现在还不得知。主要的问题还是在下载文件名为中文的情况,英文没有太多的区别。这里给出详细代码

    jsp页面: <a href="<s:url value='employee/test!downloadFile.action'><s:param name='fileName'>ttt.doc</s:param> </s:url>">下载</a>

    action中:

     // 文件下载
          public InputStream getDownloadFile() throws Exception{
              System.out.println(getFileName());
              InputStream inputStream = ServletActionContext.getServletContext().getResourceAsStream("/file/廖哲毅论文2.doc");
              System.out.println(inputStream);
              return inputStream;
         }
      
          // 下载
          public String downloadFile() throws Exception {
              return SUCCESS;
         }
        
        //定义文件名称
        private String fileName;
        public void setFileName(String name) throws Exception{
    //在IE下可以正常显示中午名称,但是在火狐下就不可以了。具体原因不详
    this.fileName = new String(name.getBytes("ISO8859-1"), "utf-8"); } public String getFileName(){ return this.fileName; }

    struts.xml配置文件:

    <action name="test" class="testAction">
                <result name="successf">/index.jsp
                </result>
                <result name="success" type="stream">
                <!--指定文件下载类型     application/octet-stream默认值可以下载所有类型    -->
                    <param name="contentType">
                         application/octet-stream;
                    </param>
                 <!-- 指定下载的文件名和显示方式 ,但注意中文名的乱码问题,解决办法是:进行编码处理(不同浏览器会有不同情况)-->
                 <!--contentDisposition是文件下载的处理方式,包括内联(inline)和附件(attachment),
                                       默认是inline, 使用附件时这样配置:attachment;filename="文件名" 。-->
                    <param name="contentDisposition">
                       attachment;filename="${fileName}"
                     </param>
                    <!--由getDownloadFile()方法获得inputStream-->
                     <param name="inputName">downloadFile</param>
                     <!--  指定下载文件的缓存大小-->
                     <param name="bufferSize">2048</param>
                 </result>
             </action>
  • 相关阅读:
    使用OPC的方式去连接PLC进行AB SLC-5_04数据的采集
    pytest:conftest.py运行细节一则
    《数据结构与算法》和《设计模式》之开门见山篇
    C语言真正的编译过程
    外挂原理之植物大战僵尸
    ORACLE数据库创建动态表
    JS中事件绑定问题
    由 “无法使用从远程表选择的 lob 定位符” 错误而引导出来的一系列问题解决方案
    安装JDK,配置环境变量有感
    MSSQL 常见故障处理
  • 原文地址:https://www.cnblogs.com/kailing-con/p/4244139.html
Copyright © 2020-2023  润新知