struts2自带有文件下载的功能。本文讲述的是,从Oracle中读取BLOB类型的文件,并转换成文件。为什么会选择把文件以BLOB类型存在数据库中呢?Boss说,这样保证了数据安全,不容易被窃取。
贴出代码:
struts2.xml文件
application/x-msdownload;charset=ISO8859-1
downloadFile
attachment;filename="${title}"
${size}
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代码
Struts 的详细介绍:请点这里
Struts 的下载地址:请点这里