浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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>

posted on 2012-03-07 16:03  lexus  阅读(349)  评论(0编辑  收藏  举报