歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> struts2文件下載(文件保存以BLOB類型在數據庫中)

struts2文件下載(文件保存以BLOB類型在數據庫中)

日期:2017/3/1 9:43:23   编辑:Linux編程

struts2自帶有文件下載的功能。本文講述的是,從Oracle中讀取BLOB類型的文件,並轉換成文件。為什麼會選擇把文件以BLOB類型存在數據庫中呢?Boss說,這樣保證了數據安全,不容易被竊取。

struts2文件上傳(保存為BLOB格式) http://www.linuxidc.com/Linux/2014-06/102905.htm

Struts2的入門實例 http://www.linuxidc.com/Linux/2013-05/84618.htm

Struts2實現ModelDriven接口 http://www.linuxidc.com/Linux/2014-04/99466.htm

遇到的Struts2文件下載亂碼問題 http://www.linuxidc.com/Linux/2014-03/98990.htm

Struts2整合Spring方法及原理 http://www.linuxidc.com/Linux/2013-12/93692.htm

Struts2 注解模式的幾個知識點 http://www.linuxidc.com/Linux/2013-06/85830.htm

貼出代碼:

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"必須要,也就是從新的頁面打開這個下載鏈接的意思,原因是:有些浏覽器下載完成後會自動關閉當前頁,用戶當然不會希望我下載完東西之後就把之前的頁面給關閉了 -->

Struts 的詳細介紹:請點這裡
Struts 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved