zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Struts2文件下载

文件下载 struts2
2023-09-27 14:26:37 时间
文件下载先给出一个超链接到下载的Action,这个作为下载文件在webContent目录下:给出超链接为: 下载DOC类型文件 参数以此为:文件名,文件类型,下载时的文件名; 下载文件需要在Struts配置文件中这样配置:

文件下载先给出一个超链接到下载的Action,这个作为下载文件在webContent目录下:给出超链接为:

a href="down?res=算法范围.doc resType=application/msword resName=my.doc" 下载DOC类型文件 /a

参数以此为:文件名,文件类型,下载时的文件名;

下载文件需要在Struts配置文件中这样配置:

 action name="down" 

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


struts2的文件上传 在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来比较繁琐,而且不灵活,在学习了struts2后,struts2为文件上传下载提供了更好的实现机制,在...
 try {   String path = new String(filePath.getBytes( ISO-8859-1 ), utf-8 //处理get请求传过来的中文参数乱码,filePath文件路径需要set方法接收页面参数  System.out.println(path)