Struts2文件下载

简介: 文件下载先给出一个超链接到下载的Action,这个作为下载文件在webContent目录下:给出超链接为: 下载DOC类型文件 参数以此为:文件名,文件类型,下载时的文件名; 下载文件需要在Struts配置文件中这样配置: ...

文件下载先给出一个超链接到下载的Action,这个作为下载文件在webContent目录下:给出超链接为:

<a href="down?res=算法范围.doc&resType=application/msword&resName=my.doc">下载DOC类型文件</a>

参数以此为:文件名,文件类型,下载时的文件名;

下载文件需要在Struts配置文件中这样配置:

       <action name="down" class="struts1.action.DownAction">
       		<result type="stream" name="success">
       			<!-- 该参数指定二进制流 -->
       			<param name="contentType">${resType}</param>
       			<!-- 指定IO流的入口 -->
       			<param name="inputName">target</param>
       			<!-- 指定下载时文件名 -->
       			<param name="contentDisposition">filename=${resName}</param>
       			<!-- 指定缓冲大小 -->
       			<param name="bufferSize">4096</param>
       		</result>
       </action>

相应的Action类的写法为:

public class DownAction extends ActionSupport {

	//下载文件主要有三种:1、下载的目标资源,2、下载文件类型,3、下载文件名
	private String res;			//下载目标资源
	private String resType;		//下载文件类型
	private String resName;	//下载文件名
	
	//下载文件IO流的入口
	public InputStream getTarget() throws IOException {
		String path = ServletActionContext.getServletContext().getRealPath("/");
		return new FileInputStream(path+res);
	}
	
	public String getRes() {
		return res;
	}
	public void setRes(String res) throws Exception{
		//对请求参数做处理
		this.res = new String(res.getBytes("ISO-8859-1"), "UTF-8");
	}
	public String getResType() {
		return resType;
	}
	public void setResType(String resType) {
		this.resType = resType;
	}
	public String getResName() {
		return resName;
	}
	public void setResName(String resName) {
		this.resName = resName;
	}
}
这个是通用的Struts2下载模板

目录
相关文章
|
Java 开发者
Struts2的文件下载 | 学习笔记
快速学习 Struts2的文件下载,介绍了 Struts2的文件下载系统机制, 以及在实际应用过程中如何使用。
73 0
|
XML Java 数据格式
|
Java
struts2 下载文件
服务端action代码  public String downloadReport() {    try {    String path = new String(filePath.getBytes("ISO-8859-1"),"utf-8");//处理get请求传过来的中文参数乱码,filePath文件路径需要set方法接收页面参数   System.out.println(path)
1553 0
Struts2文件上传
1  在Struts2中上传文件需要 commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar 这两个包。  2  确认页面form表单上的提交方式为POST,enctype属性的值为“multipart/form-data”。
778 0