我正在尝试从我的应用程序中打开Excel工作表。我从我的页面调用以下方法。但是当excel打开时,它没有我期望的文件名(testExcel),而是将文件名设置为openExcel
@RequestMapping(value = "/openExcel.do")
protected void openExcel(HttpServletRequest req, HttpServletResponse resp){
String reportName = "testExcel.xls";
String reportPath = "C:\reports\";
String contentType="application/vnd.ms-excel";
resp.setHeader("ContentType", contentType);
resp.setContentType(contentType);
ServletOutputStream out = resp.getOutputStream();
resp.setHeader("Content-disposition", "inline; filename=" + reportName);
String pragma="no-cache";
resp.setHeader("Pragma",pragma);
fileStr = new FileInputStream(new File(reportPath.trim()
+ reportName.trim()));
bis = new BufferedInputStream(fileStr);
bos = new BufferedOutputStream(out);
int len = fileStr.available();
byte[] buff = new byte[len];
int retValue=fileStr.read(buff);
resp.getOutputStream().write(buff);
resp.getOutputStream().flush();
resp.getOutputStream().close();
}
当我更改以下行
时resp.setHeader("Content-disposition", "inline; filename=" + reportName);
到
resp.setHeader("Content-disposition", "attachment; filename=" + reportName);
它工作正常,并且正确显示了excel的名称。但是弹出的保存不会出现在ie 11中,而是在ie11页脚中打开或保存选项。我需要弹出窗口中的那条消息,我需要知道为什么内容处理:内联没有正确显示名称。请帮忙。