您的位置:首页 > 编程语言 > Java开发

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

2012-03-07 16:03 483 查看
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>

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: