您的位置:首页 > 编程语言 > Java开发

Struts2,sping文件下载

2014-06-19 18:51 183 查看
1.struts.xml中加入如下代码

<action name="download" class="download"  method="download">

<result name="success" type="stream">
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<param name="inputName">inputStream</param>
<!--
使用经过转码的文件名作为下载文件名,downloadFileName属性 对应action类中的方法
getDownloadFileName()
-->
<param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>

Application.xml:

<bean id="download" class="com.oa.util.DownloadBean">
<property name="dao">
<ref bean="hibernateTemplateDaoImp" />
</property>
</bean>

2.action

public class DownloadBean {

private HibernateTemplateDaoImp dao;
private String fileName;
private InputStream inputStream;
private String id;

public InputStream getInputStream() throws Exception {
Upfile data = (Upfile) dao.get(Upfile.class, id);
fileName = data.getFilename();

String realPath = ServletActionContext.getServletContext().getRealPath(
"/")
+ "uploadFile/" + fileName;
File file = new File(realPath);
inputStream = new FileInputStream(file);
return inputStream;
}

public String getFileName() {
return fileName;
}
public void setInputStream(InputStream inputStream) {
this.inputStream = inputStream;
}
public String download() {
return "success";
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
/** 提供转换编码后的供下载用的文件名 */
public String getDownloadFileName() {
String downFileName = fileName;
try {
downFileName = new String(downFileName.getBytes(), "ISO8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return downFileName;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public HibernateTemplateDaoImp getDao() {
return dao;
}
public void setDao(HibernateTemplateDaoImp dao) {
this.dao = dao;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Struts2文件下载