在ie中打开时,Excel名称不正确

时间:2015-01-13 06:39:26

标签: java spring servlets

我正在尝试从我的应用程序中打开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页脚中打开或保存选项。我需要弹出窗口中的那条消息,我需要知道为什么内容处理:内联没有正确显示名称。请帮忙。

0 个答案:

没有答案