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";
            }
     
    }

 

posted @ 2013-11-17 19:34  子木聊出海  阅读(219)  评论(0编辑  收藏  举报