繁体   English   中英

Java 发送 xls 文件但浏览器将其识别为 xlsx

[英]Java sending xls file but browsers recognising it as xlsx

我正在从 Java 后端导出一个 xls 文件,但是当客户端收到它时,它被识别为 xlsx 文件,尽管它的名称中有.xls 扩展名。 我正在使用 JasperXlsExporterBuilder 构建 xls 文件。

发送文件时,我设置了响应类型: response.type("application/vnd.ms-excel");

和响应头: response.header("Content-Disposition", "attachment;filename=" + file.getName()); 其中文件名是 filename.xls

但是当客户端收到它时,该文件仍称为 filename.xls 但它显示You have chosen to open: filename.xls which is Excel 2007 spreadsheet (5kB) from: blob:这会导致问题,因为某些 excel 版本不能处理识别类型和文件扩展名之间的不匹配。

您所做的一切都不会导致这种情况; 正在下载您的文件的计算机的安装已损坏。 例如,如果注册表“链接”.xls 扩展名,您就会明白这一点。 您无法检测到并且无法修复它(因为您是网络服务器;如果您可以检测或修复此类事情,您也可以做恶意的事情,因此,您不能,而且您永远无法从web 服务器)。

您可以尝试的最后一项努力可能不起作用(此时您已经用尽了服务器端可用的所有选项)是确保 URL 本身以.xls 结尾。 确保用户关注的是https://www.user3274server.com/foo/bar/filename.xls之类的链接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM