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

Struts文件下载详解

2016-05-08 00:00 621 查看

在做项目中上传下载肯定是少不了的,本博文对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官方文档
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: