zoukankan      html  css  js  c++  java
  • Struts2文件下载

    我们在学习Servlet和HTTP协议时已经可以实现文件下载,即写content-disposition头即可,struts2的实现原理也是这个,但是提供了更好的封装性;

    struts2的stream结果类型专门用于实现文件下载;

    (1)struts.xml中配置stream结果类型,并配置contentType、contentDisposition、bufferSize参数即可,模板:

    <action name="download" class="">

    <result type="stream" name="success">

    <param name="contentType"></param>

    <param name="contentDisposition">attachment;filename=""</param>

    <param name="bufferSize">4096</param>

    </result>

    </action>

    (2)在Action中创建public InputStream getInputStream()throws Exception;方法,此方法用于获得下载文件的输入流;

    package org.download.action;


    import java.io.InputStream;


    import org.apache.struts2.ServletActionContext;


    import com.opensymphony.xwork2.ActionSupport;


    public class DownloadAction extends ActionSupport {

    public InputStream getInputStream()throws Exception{

    return ServletActionContext.getServletContext().getResourceAsStream("/WEB-INF/upload/1.jpg");

    }

    public String execute()throws Exception{

    return SUCCESS;

    }

    }

    struts.xml

                <action name="download" class="org.download.action.DownloadAction">
    <result type="stream" name="success">
    <param name="contentType">image/jpeg</param>
    <param name="contentDisposition">attachment;filename="1.jpg"</param>
    <param name="bufferSize">4096</param>
    </result>
    </action>

    就可以完成下载;

  • 相关阅读:
    报表设计器的使用之一:入门
    统计图开发之二:点图元
    统计图开发之一:画法定义
    集算器之五:序表
    集算器之四:程序流程
    忏悔录
    请不要离我而去
    所想和所做 所梦和所成
    做出改变,不断改变。
    Linux 操作命令
  • 原文地址:https://www.cnblogs.com/toge/p/6114706.html
Copyright © 2011-2022 走看看