[size=small][b]下载的核心java代码:[/b][/size]
[color=red][b]Action类:[/b][/color]
public class Download extends ActionSupport {
//下载文件
private String fileName = "";
public String getFileName() throws UnsupportedEncodingException {
return new String(fileName.getBytes("gbk"), "iso-8859-1");
}
//为需要下载的文件进行编码
public void setFileName(String fileName)
throws UnsupportedEncodingException {
this.fileName = new String(fileName.getBytes("iso-8859-1"));// 防止乱码名称的出现
}
/**
* 下载方法
* @return
* @throws IOException
*/
public InputStream getDownloadFile() throws IOException {
ServletActionContext.getResponse().setContentType(
"application/x-msdownload");// 告诉浏览器是下载类型
//获得需要下载文件的路径
String str=ServletActionContext.getServletContext().getRealPath("") + "\\"+"upload"+"\\"+fileName;
//读取下载文件
FileInputStream fileInputStreamRef = new FileInputStream(new File(str));
ServletActionContext.getResponse().setHeader("Content-Disposition",
"attachment;filename=" + getFileName());// 设置下载文件的默认名称
return fileInputStreamRef;
}
//struts2请求执行的方法
public String execute() throws IOException {
//返回成功,配置文件中再执行一次请求调用InputStream方法
return "success";
}
}
<!-- -下载使用的配置 -->
<action name="download" class="cn.com.zz.action.Download">
<result name="success" type="stream">
<param name="contentDisposition">attachment;filename=${fileName}</param>
<param name="inputName">downloadFile</param>
</result>
</action>
一个较为完整的下载配置:
<action name="download" class="com.upload.struts2.action.DownloadAction">
<result name="success" type="stream">
//指定下载的类型
<param name="contentType">application/vnd.ms-word</param>
//动态获取下载文件名
<param name="contentDisposition">filename="test.doc"</param>
//指定被下载文件的入口输入流
<param name="inputName">downloadFile</param>
//指定下载文件时的缓冲区大小,默认的是1024字节。
<param name="bufferSize">2048</param>
</result>
</action>
[color=red][b]Action类:[/b][/color]
public class Download extends ActionSupport {
//下载文件
private String fileName = "";
public String getFileName() throws UnsupportedEncodingException {
return new String(fileName.getBytes("gbk"), "iso-8859-1");
}
//为需要下载的文件进行编码
public void setFileName(String fileName)
throws UnsupportedEncodingException {
this.fileName = new String(fileName.getBytes("iso-8859-1"));// 防止乱码名称的出现
}
/**
* 下载方法
* @return
* @throws IOException
*/
public InputStream getDownloadFile() throws IOException {
ServletActionContext.getResponse().setContentType(
"application/x-msdownload");// 告诉浏览器是下载类型
//获得需要下载文件的路径
String str=ServletActionContext.getServletContext().getRealPath("") + "\\"+"upload"+"\\"+fileName;
//读取下载文件
FileInputStream fileInputStreamRef = new FileInputStream(new File(str));
ServletActionContext.getResponse().setHeader("Content-Disposition",
"attachment;filename=" + getFileName());// 设置下载文件的默认名称
return fileInputStreamRef;
}
//struts2请求执行的方法
public String execute() throws IOException {
//返回成功,配置文件中再执行一次请求调用InputStream方法
return "success";
}
}
<!-- -下载使用的配置 -->
<action name="download" class="cn.com.zz.action.Download">
<result name="success" type="stream">
<param name="contentDisposition">attachment;filename=${fileName}</param>
<param name="inputName">downloadFile</param>
</result>
</action>
一个较为完整的下载配置:
<action name="download" class="com.upload.struts2.action.DownloadAction">
<result name="success" type="stream">
//指定下载的类型
<param name="contentType">application/vnd.ms-word</param>
//动态获取下载文件名
<param name="contentDisposition">filename="test.doc"</param>
//指定被下载文件的入口输入流
<param name="inputName">downloadFile</param>
//指定下载文件时的缓冲区大小,默认的是1024字节。
<param name="bufferSize">2048</param>
</result>
</action>