前台
window.open('downFileAction?fileName='+result.fileName);
// 下载文件
@Action(value = "downFileAction")//, results = { @Result(name = "success", type = "stream") })
public void downFile() {
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
OutputStream os = null;
InputStream is = null;
String filePath = this.application.getRealPath("root"); //得到项目的web路径
try
{
File downloadFile = new File(filePath, this.fileName);
is = new FileInputStream(downloadFile);
bis = new BufferedInputStream(is);
os = response.getOutputStream();
bos = new BufferedOutputStream(os);
this.response.reset();
this.response.setCharacterEncoding("utf-8");
this.response.setContentType("application/octet-stream");//文件类型contenttype
this.response.setHeader("Content-Disposition","attachment; filename=" + fileName); //关键部分,打开一个下载框
int bytesRead = 0;
byte[] buffer = new byte[8192];
while((bytesRead = bis.read(buffer,0,8192)) != -1)
{
bos.write(buffer, 0, bytesRead);
}
bos.flush();
is.close();
bis.close();
os.close();
bos.close();
}
catch(Exception e){
e.printStackTrace();
}
}
// 下载文件
@Action(value = "downFileAction", results = { @Result(name = "success", type = "stream",
params = {"contentType", "application/octet-stream", "inputName", "xlsInputStream",
"contentDisposition", "filename=\"a.xls\""}) })
public String downFile() {
String filePath = this.application.getRealPath("root");
File downloadFile = new File(filePath, this.fileName);
try {
this.xlsInputStream = new FileInputStream(downloadFile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return this.SUCCESS;
}