我在 Spring Controller 上有以下代码
@RequestMapping(value = "/download", method = RequestMethod.POST)
public void downloadActive(@RequestParam(value = "type") String offerType, HttpServletResponse response,
HttpSession session) throws Exception {
StringBuilder b = new StringBuilder();.
.
.
response.addHeader("Content-Disposition: ", "attachment; filename=my" + offerType + "Offers.csv");
response.getWriter().write(b.toString());
..
}
当单击来自 EXt Js 的下载按钮时,将执行此代码。在 chrome 上,它直接将文件下载为 *.csv 格式,当用户打开它时,它会自动使用 Excel 打开文件,如果他们已经安装并且这是我想要的正确行为。
但是,在 Firefox 上,它会提示一个另存为窗口,其中包含打开方式和保存选项。如果我使用 open with 选项,它会告诉我文件名是 filename.csv 但类型是 chrome htm 文件。我没有在我的代码中的任何地方提到 htm,我不知道为什么它试图将它作为 htm 而不是 csv 文件打开。一旦它试图打开它,它就会带来 excel 应用程序,并且内容格式错误。
有没有办法在 Firefox 上避免这个问题?
谢谢