Struts2文件下载简介
文件上传是将本地文件上传到服务器中,而文件下载正好相反,是指将文件从服务器下载到本地机器。
Struts2 框架不但可以实现文件上传,同样也提供了对文件下载功能的支持。要使用 Struts2 框架的文件下载,首先要在 Action 类中添加一个新方法,该方法返回值为一个 InputStream,InputStream 代表了被下载文件的入口,其示例代码如下所示:
实现了 Action 中的方法后,还需要在配置文件 struts.xml 中设置 Action 的返回值为 stream 类型,并在 stream 结果类型中指定一个 inputName 参数,该参数用于指定被下载文件的入口。
配置 stream 结果类型时,可以指定以下几个属性。
Action 配置信息的示例代码如下所示:
Struts2 框架不但可以实现文件上传,同样也提供了对文件下载功能的支持。要使用 Struts2 框架的文件下载,首先要在 Action 类中添加一个新方法,该方法返回值为一个 InputStream,InputStream 代表了被下载文件的入口,其示例代码如下所示:
public class DownLoadAction extends ActionSupport{ //定义了返回InputStream的方法,该方法作为被下载文件的入口 public InputStream getInputStream(){ return ServletActionContext.getServletContext().getResourceAsStream("/upload/Struts.txt"); } @Override public String execute() throws Exception{ return SUCCESS; } }在上述示例代码中,定义了 getDownloadFile() 方法,该方法的返回值是一个 InputStream,在 InputStream 中指定了下载文件的路径以及下载文件的名称。
实现了 Action 中的方法后,还需要在配置文件 struts.xml 中设置 Action 的返回值为 stream 类型,并在 stream 结果类型中指定一个 inputName 参数,该参数用于指定被下载文件的入口。
配置 stream 结果类型时,可以指定以下几个属性。
- contentType:指定下载文件的文件类型,该文件类型要与互联网 MIME 标准中规定的类型相一致,如 text/plain 代表纯文本。
- inputName:指定下载文件的输入流入口,在 Action 中需要指定该输入流入口。
- contentDisposition:指定文件下载的处理方式,有内联(Inline,直接显示文件)和附件(Attachment,弹出文件保存对话框)两种方式,默认为内联。
- bufferSize:用于设置下载文件时的缓存大小,默认为 1024。
Action 配置信息的示例代码如下所示:
<!-- 文件下载Action --> <action name="xxx" class="xxx"> <result type="stream"> <!--文件类型--> <param name="contentType">text/plain</param> <!--指定文件名--> <param name="contentDisposition"> attachment;filename="xxx.txt" </param> <!--输入流入口--> <param name="inputName">downloadFile</param> <!--缓存大小--> <param name="bufferSize">1024</param> </result> </action>
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算