2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Struts2

Struts2文件下载简介

时间:12-11来源:作者:点击数:92

文件上传是将本地文件上传到服务器中,而文件下载正好相反,是指将文件从服务器下载到本地机器。

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>

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门