博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java之struts2之文件下载
阅读量:5038 次
发布时间:2019-06-12

本文共 1701 字,大约阅读时间需要 5 分钟。

1.在实际应用开发中,文件下载功能也非常常见。

2.最简单的文件下载方式是通过超链接来进行文件下载:

注意:直接通过超链接下载文件,如果浏览器能够读取文件,浏览器会直接读取,而不会下载到本地。并且有安全问题。所以,可以通过action来实现下载。

3.Struts2文件下载功能的实现:

Action实现

public class DownloadAction {    private String fileName;    public String execute(){        return Action.SUCCESS;    }    //获取文件流    public InputStream getInputStream() throws FileNotFoundException{        String path=ServletActionContext.getServletContext().getRealPath("/download");        return new FileInputStream(new File(path,fileName));    }    public String getFileName() {        return fileName;    }    public void setFileName(String fileName) {        this.fileName = fileName;    }}

Struts.xml

inputStream
attachment;filename=${fileName}

jsp

 

或者 Action的另一种写法:

public class DownloadAction {    private String fileName;    private InputStream inputStream;    public String execute() throws FileNotFoundException{        String path=ServletActionContext.getServletContext().getRealPath("/download");        inputStream =  new FileInputStream(new File(path,fileName));        return Action.SUCCESS;    }    public InputStream getInputStream() {        return inputStream;    }    public void setInputStream(InputStream inputStream) {        this.inputStream = inputStream;    }    public String getFileName() {        return fileName;    }    public void setFileName(String fileName) {        this.fileName = fileName;    }}

转载于:https://www.cnblogs.com/Vincent-yuan/p/11161226.html

你可能感兴趣的文章
iOS 8 地图
查看>>
20165235 第八周课下补做
查看>>
[leetcode] 1. Two Sum
查看>>
iOS 日常工作之常用宏定义大全
查看>>
PHP的SQL注入技术实现以及预防措施
查看>>
MVC Razor
查看>>
软件目录结构规范
查看>>
Windbg调试Sql Server 进程
查看>>
linux调度器系列
查看>>
mysqladmin
查看>>
解决 No Entity Framework provider found for the ADO.NET provider
查看>>
SVN服务器搭建和使用(三)(转载)
查看>>
Android 自定义View (三) 圆环交替 等待效果
查看>>
设置虚拟机虚拟机中fedora上网配置-bridge连接方式(图解)
查看>>
HEVC播放器出炉,迅雷看看支持H.265
查看>>
[置顶] Android仿人人客户端(v5.7.1)——人人授权访问界面
查看>>
Eclipse 调试的时候Tomcat报错启动不了
查看>>
【安卓5】高级控件——拖动条SeekBar
查看>>
ES6内置方法find 和 filter的区别在哪
查看>>
Android入门之文件系统操作(二)文件操作相关指令
查看>>