struts2实现文件下载
来源:互联网 发布:python logger 编辑:程序博客网 时间:2024/06/08 06:10
要下载文件,首先要获取文件列表
创建action
public class DownloadAction extends ActionSupport{private File[] files;public String list(){//取得文件保存路径String path=ServletActionContext.getServletContext().getRealPath("/upload");File f=new File(path);//获取目录下保存的文件files=f.listFiles();return "list";}//省略get/set}配置struts.xml
<action name="*down" class="base.MyFileUpload" method="{1}"><result name="list">/filelist.jsp</result></action>前台页面显示,filelist.jsp
<body> <c:forEach items="${files }" var="f"> ${f.name}<a href="listdownload.action?filename=${f.name }">下载</a><br> </c:forEach></body>点击下载链接,将文件名传入后台,
修改action代码
public class DownloadAction extends ActionSupport{private File[] files;private String fileName;public String list(){//取得文件保存路径String path=ServletActionContext.getServletContext().getRealPath("/upload");File f=new File(path);//获取目录下保存的文件files=f.listFiles();return "list";}public InputStream getDownloadFile() throws Exception{String filePath = ServletActionContext.getRequest().getServletContext().getRealPath("/upload/"+fileName);InputStream is = new FileInputStream(new File(filePath));//解决下载文件名称问题fileName=URLEncoder.encode(fileName, "UTF-8");return is;}public void setFileName(String fileName) throws UnsupportedEncodingException {//处理get请求中文乱码this.fileName = new String(fileName.getBytes("iso8859-1"),"utf-8");}public File[] getFiles() {return files;}public void setFiles(File[] files) {this.files = files;}public String getFileName() {return fileName;}}
修改struts.xml文件
<action name="*down" class="base.DownloadAction" method="{1}"><result name="list">/filelist.jsp</result><result type="stream"><!-- 下载的文件数据存放的方法,该方法返回一个InputStream 例如取值为inputStream的属性需要编写getInputStream()方法--><param name="inputName">downloadFile</param><!--下载时,客户端显示的下载的文件名 --><param name="contentDisposition"> attachment; filename=${fileName}</param><!-- 数据的缓冲大小 --><param name="bufferSize">1024</param></result></action>其中attachment;filename="struts2.txt",设置浏览器以下载的方式打开文件,文件下载的时候保存的名字应为struts2.txt,如果直接写filename="struts2.txt",那么默认情况是代表inline,浏览器会尝试自动打开它,
等价于这样的写法:inline; filename="struts2.txt"
阅读全文
0 0
- struts2实现文件下载
- struts2实现文件下载
- struts2实现文件下载
- struts2实现文件下载
- struts2实现文件下载
- struts2实现文件下载
- struts2实现文件下载
- Struts2实现文件下载
- Struts2 实现文件下载
- struts2实现文件下载
- struts2实现文件下载
- struts2 实现文件下载
- struts2实现文件下载
- struts2实现文件下载
- Struts2 实现下载文件
- Struts2实现文件下载
- Struts2实现下载文件
- struts2 实现文件下载
- 二.codesmith 生成 hibernate 中的实体类
- 欢迎使用CSDN-markdown编辑器
- [Android 学习笔记]AIDL
- 关于SecureRandom导致tomcat启动慢
- 关于小程序
- struts2实现文件下载
- java 集合类对比
- WebAssembly,Web的新时代
- Spring的MapPropertySource刷新系统属性值(key-value配置在外部系统中如redis,数据库等)
- 让你飞快构建Android开发框架----Android Studio Template
- 可重用模块化设计运用到menu小程序
- Pyhton3+openCV3初体验
- python+requests接口自动化测试框架实例详解教程
- [Android学习笔记] Service 学习