本文主要详细介绍了struts2的简单文件下载功能,具有一定的参考价值。感兴趣的朋友可以参考一下。
Struts2提供流结果类型,专门用于支持文件下载。配置流类型的结果需要指定以下四个属性。
ContentType:指定下载文件的文件类型。
Input:指定下载文件的输入流。
ContentDisposition:指定下载的文件名。
BufferSize:指定下载文件时的缓冲区大小。
2 struts2文件下载示例:
1.处理文件下载的操作:
/**
*描述:Struts2控制文件下载
*作者:十一
*日期:2018年1月24日10时39分
*/
公共类FileAction扩展ActionSupport{
//该成员变量对应struts.xml中inputName的值,并为其提供get方法。
私有InputStream目标文件;
//文件下载
公共字符串下载(){
//指定下载资源的位置,返回对应的输入流。
string path=/we b-INF/images/lib . zip ;
//使用getResourceAsStream()将指定文件转换为相应的输入流。
target file=servletactioncontext . getservletcontext()。getResourceAsStream(路径);
返回成功;
}
//提供一个get方法
公共输入流getTargetFile() {
返回目标文件;
}
}
要下载文件,您必须首先拥有下载的文件资源。这里我把下载的文件放在项目的WEB-INF/images路径下,可以根据自己的需要,然后直接使用ServletContext提供的getResourceAsStream()方法返回指定文件对应的输入流。
2.配置struts.xml
?xml版本=1.0 编码=UTF-8 ?
!DOCTYPE struts公共
-//Apache软件基础//DTD Struts配置2.3//EN
http://struts . Apache . org/dtds/struts-2.3 . dtd
支杆
constant name= struts . enable . dynamicmethodintiation value= false /
常量名称=struts.devMode 值=true /
包名称=default 命名空间=/扩展=struts-default
action name= file _ * class= eleven . action . file action method= { 1 }
!-文件下载-
!-用流的结果类型配置结果-
结果类型=“流”
!-指定下载文件的文件类型-
param name= content type application/zip/param!-图片/jpg -
!-指定返回下载文件的输入流的名称-
param name= input name target file/param
param name= content disposition filename= AAA . zip /param
!-指定下载文件的缓冲区大小-
param name= buffer size 4096/param
/结果
/操作
/包
/struts
在浏览器的地址栏输入对应文件下载的访问路径,比如http://localhost:8080/demo/file _ download,就可以下载文件了。
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。