Struts文件下载具体解释
Posted cxchanpin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts文件下载具体解释相关的知识,希望对你有一定的参考价值。
在做项目中上传下载肯定是少不了的,本博文对struts2的下载进行解释并附上部分代码
1、action类
public class FileDownLoadAction extends ActionSupport{ private String filename;//下载文件的名称 @Override public String execute() throws Exception { return SUCCESS; } //下载源 public InputStream getInputStream() throws IOException{ String path =ServletActionContext.getServletContext().getRealPath(filename);//获取文件路径 //System.out.println("path="+path); File file = new File(path); return FileUtils.openInputStream(file); } //下载文件名 public String getDownloadFileName() throws Exception{ String downloadFileName=""; String []filenames=filename.split("/"); //System.out.println(filenames[filenames.length-1]); downloadFileName=URLEncoder.encode(filenames[filenames.length-1], "UTF-8");//解决下载中文命名文件乱码问题 return downloadFileName; } ///////////////////////////////////////////字段封装////////////// public String getFilename() { return filename; } public void setFilename(String filename) { this.filename = filename; } }
2、struts2.xml配置
<action name="download" class="com.zzuli.student.action.FileDownLoadAction"> <!--以流的方式返回 --> <result name="success" type="stream"> <!--文件流 --> <param name="contentType">application/octet-stream</param> <!--下载源 --> <param name="inputName">InputStream</param> <!--以附件方式下载 downloadFileName相应Action类getDownloadFileName() --> <param name="contentDisposition">attachment;filename="${downloadFileName}"</param> <!--缓冲流大小 --> <param name="bufferSize">8192</param> </result>
3、jsp下载链接页面
<td> <a href="download.action?filename=${documentUrl}">点击下载</a> </td>
具体具体解释请查看Struts官方文档
以上是关于Struts文件下载具体解释的主要内容,如果未能解决你的问题,请参考以下文章