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

Struts2文件流式下载

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>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值