String acct_month = actionForm.get("acctMonth").toString();
String acctMonth = acct_month.replace("-", "");
// String message=bdPostAcctFeeService.compute(acctMonth);
String path = request.getContextPath() + "/upload/" + acctMonth
+ ".txt";
if (bdPostAcctFeeService.getExportFile(acctMonth, path)) {
String filePath = path;
File file = new File(path);
String filename = file.getName();
// 取得文件的扩展名ext
String ext = filename.substring(filename.lastIndexOf(".") + 1)
.toUpperCase();
InputStream fis = new BufferedInputStream(new FileInputStream(
path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset();
response.addHeader("Content-Disposition",
"attachment;filename="
+ new String(filename.getBytes()));
response.addHeader("Content-Length", "" + file.length()); // 设置返回的文件类型
OutputStream toClient = new BufferedOutputStream(response
.getOutputStream()); // 得到向客户端输出二进制数据的对象
// 根据扩展名声称客户端浏览器mime类型
if (ext.equals("xls"))
response.setContentType("application/msexcel");
else
response.setContentType("application/octet-stream"); // 设置返回的文件类型
toClient.write(buffer); // 输出数据
toClient.flush();
toClient.close();
forward = null;
这些代码要写在action中,不能写在页面然后用流下载。注意 return null。