Struts2文件下载

<struts>
     <package name="default" extends="struts-default">
        <action name="download" class="action.DownloadAction">
           <result type="stream">
                                <param name="contentType">application/octet-stream</param>
                                <param name="inputName">inputStream</param>
                                <param name="contentDisposition">attachment;filename="${fileName}"</param>
                                <param name="bufferSize">4096</param>
           </result>
        </action>
     </package>
 </struts>

当result为stream类型时,struts2会自动根据你配置好的参数下载文件。

其中主要使用的参数是:
contentType 指定下载文件的文件类型 —— application/octet-stream 表示无限制
inputName 流对象名 —— 比如这里写inputStream,它就会自动去找Action中的getInputStream方法。
contentDisposition 使用经过转码的文件名作为下载文件名 —— 默认格式是attachment;filename="${fileName}",将调用该Action中的getFileName方法。
bufferSize 下载文件的缓冲大小

package action;

    import java.io.InputStream;

    import org.apache.struts2.ServletActionContext;

    public class DownloadAction {

            private String fileName;

            public void setFileName(String fileName) {
                    this.fileName = fileName;
            }
            public InputStream getInputStream() {
                    return ServletActionContext.getServletContext().getResourceAsStream("/" + fileName);
            }

            public String execute(){
                    return "success";
            }

    }
时间: 2024-12-23 18:27:29

Struts2文件下载的相关文章

struts2文件下载问题-struts2 文件下载出错

问题描述 struts2 文件下载出错 ${downloadMimeType}streamattachment;filename=""${downloadFileName}""4096 struts2配置,使用IE8下载的时候抛出Servlet.service() for servlet empty threw exception麻烦请大神们解决下...感激不尽!

struts2.0-跪求各位大神帮助啊,Struts2文件下载GG,有中文字符的文件下载就出错,英文就不出错,求救

问题描述 跪求各位大神帮助啊,Struts2文件下载GG,有中文字符的文件下载就出错,英文就不出错,求救 本人小白,文件上传木有问题,下载英文字符文件名的文件也木有问题,就是中文字符名称的文件就GG了,跪求各位大神指点 解决方案 private static final long serialVersionUID = 1L; //文件路径 private String filePath; //文件名称 private String fileName; public String getFileP

struts2 文件下载

文件下载是一个很常见的功能,用struts2实现文件下载的步骤: 一)定义一个Action类,FileDownload.java [java] view plaincopy package com.struts2.filedownload;      import java.io.InputStream;         import org.apache.struts2.ServletActionContext;         import com.opensymphony.xwork2.A

struts2 文件下载 cpu 占用 100%,求解决方案

问题描述 xml <action name="L_download" class="cnydlanFileAction" method="download"><result name="success" type="stream"><param name="contentType">application/octet-stream;charset=IS

Struts2 文件下载实例方法详解

为什么要用strtus2进行文件下载,因为如果你要下载的文件是中文名字,那么如果直接在页面生成一个超链接的话会造成404错误.前台向后台请求的是一串 unicode ,所以我们用基于strtus上面开发这个功能比较轻松. 1.创建一个普通的Action  代码如下 复制代码 package org.Rudiment.action; import java.io.InputStream; import org.apache.struts2.ServletActionContext; import

求助各位大神!Struts2文件下载遇到的问题

问题描述 在系统中我实现了文件上传和下载的功能,但是下载已经上传文件的时候,浏览器提示的是一个downloadFile.action文件..我很疑惑..请各位大神帮忙.struts.xml如下配置:<actionname="downloadFile"class="downloadFile"><paramname="inputPath">/uploadfile/</param><resultname=&qu

struts2文件下载,如果文件名带“+”号,会把它替换成空格,导致找不到文件

问题描述 页面我是通过后台循环取出文件名,然后赋值到a标签上,这些都是正常的,然后我点击链接,访问action后,在后台打印文件路径,却发现文件名不一致了,如下图:加号被替换成空格了 所以导致文件找不到,不知道这是个什么问题 解决方案 在传中文字符时需要转义参照下这个http://aniyo.iteye.com/blog/1464850解决方案二:有这么做 下载的么 直接传绝对路径 传文件名 不能传主键么........解决方案三:这个问题我也遇到过, 不过和你的有点不同,我之前遇到的问题是下载

Struts2实现文件下载功能代码分享(文件名中文转码)_java

struts2文件下载功能实现代码如下所示: Action文件 public class DownLoadAction extends ActionSupport { /** * */ private static final long serialVersionUID = 5879762231742395104L; private String fileName;//用户请求的文件名 private String inputPath;//下载资源的路径(在struts配置文件中设置) publ

struts2.0-struts2 将文件压缩后 下载却不成功

问题描述 struts2 将文件压缩后 下载却不成功 我用struts2 做了个文件下载功能. 对于未压缩过的文件 一下子就下完了.. 用ZipOutputStream做成压缩包后,只能下载一部分,然后就下不动了.. 这是什么问题..不压缩能下得动,压缩完就不行.是struts2 对下载压缩支持不好吗? inputStream = new FileInputStream(new File("E:work_myeclipse.metadata.me_tcatwebapps eport_manage