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下载模板

目录
相关文章
|
9月前
|
分布式计算 DataWorks 数据处理
产品测评 | 上手分布式Python计算服务MaxFrame产品最佳实践
MaxFrame是阿里云自研的分布式计算框架,专为大数据处理设计,提供高效便捷的Python开发体验。其主要功能包括Python编程接口、直接利用MaxCompute资源、与MaxCompute Notebook集成及镜像管理功能。本文基于MaxFrame最佳实践,详细介绍了在DataWorks中使用MaxFrame创建数据源、PyODPS节点和MaxFrame会话的过程,并展示了如何通过MaxFrame实现分布式Pandas处理和大语言模型数据处理。测评反馈指出,虽然MaxFrame具备强大的数据处理能力,但在文档细节和新手友好性方面仍有改进空间。
|
10月前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析的入门指南
本文将引导读者了解如何使用Python进行数据分析,从安装必要的库到执行基础的数据操作和可视化。通过本文的学习,你将能够开始自己的数据分析之旅,并掌握如何利用Python来揭示数据背后的故事。
|
11月前
|
API 网络安全
发送UDP数据免费API接口教程
此API用于向指定主机发送UDP数据,支持POST或GET请求。需提供用户ID、密钥、接收IP及端口、数据内容等参数。返回状态码和信息提示。示例中含公共ID与KEY,建议使用个人凭证以提高调用频率。
184 13
|
10月前
|
人工智能 自然语言处理 安全
国内如何使用claude?人工智能claude国内使用方法来了!
Claude AI 是由 Anthropic 公司开发的一款新一代 AI 助手,旨在成为更安全、更友好、更可靠的 AI 系统。它基于 Anthropic 对 AI 安全性的深入研究,并采用 “Constitutional AI” (宪法式 AI) 的训练方法,
|
前端开发 C# 开发工具
在winform中使用blazor hybrid构建页面
在winform中使用blazor hybrid构建页面
322 0
|
存储 前端开发 Java
Git 仓库越来越大?不要慌!试试这个简单方法,轻松秒瘦身
Git 仓库越来越大?不要慌!试试这个简单方法,轻松秒瘦身
|
缓存 编解码 JavaScript
< 前端性能优化: 资源加载优化 >
众所周知,前端是由HTML、CSS、JS等文件资源共同作用下渲染构建出来的。现今前端项目,大多为单页面应用,单页面应用的优点非常多(点击跳转 SPA单页面讲解),但是也并非没有缺点。由于单页面的原因,项目所需资源都需要在初次加载首屏时被加载,这就造成了首屏加载性能受到影响!对于首屏性能优化,就衍生出了相关需要思考的问题。如何将首屏加载的资源,分段将需要的资源及时加载出来,避免页面内容不显示的同时,又能避免加载多余并非立刻需要使用的资源呢?
275 0
< 前端性能优化: 资源加载优化 >
|
存储 缓存 前端开发
操作系统期末实验:多用户二级文件系统
操作系统期末实验:多用户二级文件系统
499 0
|
人工智能 搜索推荐 物联网
未来智能家居技术的发展趋势与应用前景
智能家居技术正在迅速发展,从简单的智能灯泡和智能插座,到智能语音助手和人工智能家居控制系统,其应用范围和功能不断扩大。本文探讨了未来智能家居技术的发展趋势,包括人工智能、物联网、大数据等方面的创新应用,以及智能家居在改善生活品质、提升居住舒适度和节能减排方面的潜力。
538 0
|
存储 缓存 测试技术
一种提高Unixbench测试分数的方法
一种提高Unixbench测试分数的方法
3445 0
一种提高Unixbench测试分数的方法