struts2文件下载(文件保存以BLOB类型在数据库中)
2014-06-06 17:40
633 查看
struts2文件下载(文件保存在数据库中) struts2自带有文件下载的功能。本文讲述的是,从Oracle中读取BLOB类型的文件,并转换成文件。为什么会选择把文件以BLOB类型存在数据库中呢?Boss说,这样保证了数据安全,不容易被窃取。
贴出代码:
struts2.xml文件
贴出代码:
struts2.xml文件
<!-- 简单文件下载 --> <action name="download" class="web.DownloadAction"> <!-- 注意type="stream" --> <result name="success" type="stream"> <!-- 保证文档的中文标题不乱码,必须这样做,在Java代码中是将标题转换成了ISO8859-1 --> <param name="contentType">application/x-msdownload;charset=ISO8859-1</param> <!-- 获得的文件流 --> <param name="inputName">downloadFile</param> <!-- 这个是获得的文件名 --> <param name="contentDisposition">attachment;filename="${title}"</param> <!-- 这个是输出流的大小,这里是从Java文件中获得的文件的大小 --> <param name="bufferSize">${size}</param> </result> </action>DownloadAction.java
private int id; private String title; private int size; ResultDao rDao = new ResultDao(); // 根据id,从数据库获取指定的文件 public InputStream getDownloadFile() throws Exception { // 获取文件流 return new ByteArrayInputStream(rDao.findFileById(id)); } public String execute() throws Exception { Result r = rDao.findResultById(id); title = new String(r.getTitle().getBytes(), "ISO8859-1");// 从数据库中获取文件的标题 size = getDownloadFile().available();// 获取文件的大小 return SUCCESS; } public void setTitle(String title) { this.title = title; } public void setSize(int size) { this.size = size; } public void setId(int id) { this.id = id; }前台jsp代码
<!-- 需要传指定的id --> <a href="download.action?id=<s:property value="#r.id" />" target="_blank">下载资料</a> <!-- target="_blank"必须要,也就是从新的页面打开这个下载链接的意思,原因是:有些浏览器下载完成后会自动关闭当前页,用户当然不会希望我下载完东西之后就把之前的页面给关闭了 -->
相关文章推荐
- struts2文件下载(文件保存以BLOB类型在数据库中)
- 采用struts2+hibernate实现保存文件到Oracle数据库&&并附下载代码【导入即可用】;数据库中保存blob类型的二进制文件
- 根据标题后缀名传参点击下载保存内容为任意格式文件(内容为oracle库中某字段值:BLOB类型)
- 如何处理BLOB类型数据之二:下载BLOB内容并保存到文件中
- Struts2实现文件下载(读取数据库CLOB类型的CDA)
- 如何直接下载保存在Oracl数据库中Blob字段的文件(不生成临时文件)???
- struts2中使用Blob类型处理图片上传保存在数据库中并在JSP页面中显示图片
- WPF用流的方式上传/显示/下载图片文件(保存在数据库)
- 艾伟_转载:下载文件时根据MIME类型自动判断保存文件的扩展名
- Struts2中的Blob格式文件上传下载
- 下载文件时根据MIME类型自动判断保存文件的扩展名巧解
- 解决BLOB类型文件大于1MB无法插入数据库的方法
- 把文件以二进制格式或base64字符串形式保存到数据库中,并实现下载功能源码
- 一个jsp文件实现从数据库中下载任意类型文件
- 在Java中将数据库查询结果保存为List<Map>类型的JavaScript数组文件
- SilverLight C#程序之:把文件转为二进制流保存到数据库(任意文件类型)
- jsp中可以保存下载.txt,.doc等任何类型的文件
- 如何在数据库中保存不同类型的文件
- 文件以二进制流保存到数据库及下载(转载)
- 谈谈有关各数据库Blob、Clob类型字段的读取、保存更新