zoukankan      html  css  js  c++  java
  • java以流方式下载文件struts2.x版_心灵的港湾_百度空间

    java以流方式下载文件-----struts2.x版_心灵的港湾_百度空间

    java以流方式下载文件-----struts2.x版
    2011年04月12日 星期二 11:12

    一、java代码:

    package com.innyo.cms.ui.admin;

    import java.io.InputStream;
    import java.util.Date;

    import org.apache.struts2.ServletActionContext;

    import com.innyo.cms.util.StringUtil;
    import com.opensymphony.xwork2.ActionSupport;

    public class FileDownloadAction extends ActionSupport {

     private static final long serialVersionUID = 3732213485796116174L;
     private String path;// 要下载的文件路径
     private InputStream inputStream;// 输出流
     private String fileName;// 输出流生成的文件名
     
     public String execute() throws Exception {
      // 取得文件名。
      fileName = new String(((new Date()).toLocaleString() + "_" + StringUtil.randomString(6)+ path.substring(path.lastIndexOf("."))).getBytes());
      inputStream = ServletActionContext.getServletContext().getResourceAsStream(path);
      System.out.println(fileName + "  " + inputStream);
      return SUCCESS;
     }

     /**
      * @return the path
      */
     public String getPath() {
      return path;
     }

     /**
      * @param path
      *            the path to set
      */
     public void setPath(String path) {
      this.path = path;
     }

     /**
      * @return the inputStream
      */
     public InputStream getInputStream() {
      return inputStream;
     }

     /**
      * @param inputStream
      *            the inputStream to set
      */
     public void setInputStream(InputStream inputStream) {
      this.inputStream = inputStream;
     }

     /**
      * @return the fileName
      */
     public String getFileName() {
      return fileName;
     }

     /**
      * @param fileName
      *            the fileName to set
      */
     public void setFileName(String fileName) {
      this.fileName = fileName;
     }

    }

    二、struts配置

    <result name="success" 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>

  • 相关阅读:
    BigDecimal中的8中舍入模式详解
    使用二倍均值法完成红包算法
    使用Calendar类和它的子类GregorianCalendar类实现构建动态日历
    『MelodyHub』书写是对思维的缓存
    本站已接入音乐播放器API
    【LeetCode】35. 搜索插入位置
    配置NodeJs环境变量
    利用GitHub博客连接多仓库
    hexo 大型车祸现场
    随机图片API
  • 原文地址:https://www.cnblogs.com/lexus/p/2383692.html
Copyright © 2011-2022 走看看