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官方文档

时间: 2024-07-30 18:39:57

Struts文件下载具体解释的相关文章

struts 文件下载 annotation 注解版

[本文简介] 本文将简单介绍使用 struts2 ,通过零配置和 annotation 实现文件下载功能. [文件夹结构] [web.xml有关struts的配置] <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

struts 文件下载

文件下载步骤: (1)获取要下载的文件的文件名.对其进行编码处理,因为文件上传默认是get提交 (2)文件下载提交的业务方法 (3)返回文件流的方法 (4)下载显示的文件名 文件下载列表: <body> <table border="1"> <tr> <td>编号</td> <td>文件名</td> <td>操作</td> </tr> <c:forEach it

struts.xml配置解释

1.struts.xml配置文件中的<package>中的name表示包名,可以看成是一个模块名称, name属性必需,用于被其他的包引用当前包2.extends默认我们会继承struts-default包,它里面默认有写加载器.过滤器之类的配置, 当前包继承哪个包,继承的,即可以继承其中的所有配置,通常情况下继承struts-default 我们可以直接使用,该包在 下的 中 3. 什么是action: 一个struts2的请求就是一个action 4. 看到class.method属性可以

Struts文件下载

前三个动态提供 一般后面的两个就是用struts预设 1024b 即2Kb contentType="text/html"; contentDisposition="attachment;filename=date.html"; ServletContext context=ServletActionContext.getServletContext(); String fileName=context.getRealPath("/files/date.h

【SSH 基础】SSH框架--struts深入具体解释(一)

学习了struts,可是对于它的由来,以及为什么使用action和struts.xml的方式而不採用曾经的servlet方式.有些疑问,究竟之前的方式有什么弊端,struts又给我们带来了什么便利? 以下一一为大家解答! struts的由来: 随着JSP与Servlet 技术大量应用于以Web为基础的应用程序,为了提升Web 应用程序可维护性与反复使用性.Java开发者提出了一些较佳的开发模式.比較常见的两种JSP应用架构分别为Model1 与Model 2.详情參见(JAVA学习篇--JAVA

Struts文件下载(静态)

前言:在实际的开发中,我们可能需要动态下载和静态下载, 动态下载:例如我上传了一个文件,你想下载,那就必须动态生成下载链接,因为我服务器一开始是不知道我上传的东西是什么,放在那里, 静态下载:比如一些网站一些固定的资源,提供给我们下载 这里我写的是关于静态的下载实现流程:第一步: 编写Action类,响应下载的的超链接: 1)声明contentType(文件类型)contentLength( 下载的文件的长度)contentDisposition(响应信息的类型)这三个属性,并提供这三个属性的s

Struts1.3——文件上传和下载

1.Struts文件上传 在Web开发中,会经常涉及到文件的上传和下载,比如在注册账户的时候,我们需要上传自己的头像等. 我们可以利用Struts很方便地实现文件的上传. 1.1 开发步骤 现在,假设我们要在注册的时候上传自己的头像.新建项目名称为StrutsFileUpAndDown,并引入Struts1.3 (1)首先,写注册的JSP页面register.jsp 它的body内容如下: <body> <h1>注册用户</h1> <% --如果表单有文件控件,则

4、struts2 文件上传下载

1.文件上传 struts提交的文件组件上传, 前台: 1.提交方式POST 2.表单类型 multipart/form-data 3.input type=file 后台: Apache提供的FileUpload组件 核心类: FileItemFactory FileItem的工厂 ServletFileUpload servlet 中的文件上传的核心类 FileItem 封装了上传的表单文件项的信息 总之 文件上传,处理起来比较麻烦 Struts的文件上传 文件上传拦截器帮助我们晚场了文件上

bean标签

一. 访问HTTP请求信息或JSP隐含对象 1.<bean:header>标签: 该标签用于从HTTP请求中提取Header信息,示例如下: <bean:header id="lang" name="Accept-Language"/> 提取的信息是:<bean:write name="lang"/> 解释:将请求Header中的Accept-Language属性存储到page范围内的变量Language中!然