/**
* 下载文件
* 文件名中不能包含可疑字符
* @return
*/
public String download() {
response = getResponse();
request=getRequest();
File fi = new File(name);
// 取得文件名
String filesname = fi.getName();
SystemParameter systemParameter = (SystemParameter) getRequest()
.getSession().getServletContext()
.getAttribute("systemParameter");
OutputStream sos =null;
FileInputStream input = null;
try {
//这里设置文件名,不能设置 utf-8
response.setHeader("Content-disposition","attachment; filename="+new String( filesname.getBytes("gb2312"), "ISO8859-1" ) );
response.setContentType("application/msexcel;charset=UTF-8");
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "No-cache");
response.setDateHeader("Expires", 0);
response.setContentType("application/octet-stream");
//response.setHeader("Connection", "close");
sos = response.getOutputStream();
File d = new File(systemParameter.getFilePath()+"\\jasper\\"+filesname);
input = new FileInputStream(d);
byte[] by = new byte[1024];
int len = input.read(by);
while(len!=-1){
sos.write(by, 0, len);
len=input.read(by);
}
return null;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally {
try {
sos.flush();
if (input != null)
input.close();
if (sos!=null) {
sos.flush();
sos.close();
}
} catch (Exception e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
return null;
}