在项目中做文件导出功能时,出现了使用火狐浏览器导出文件出现没有后缀名的情况(Google浏览器可以正常导出文件)。
最后发现原因是使用字符串拼接的文件名中存在Timestamp而导致的问题,拼接文件名时不使用Timestamp即可正常导出有后缀名的文件。具体原因尚不清楚。
代码如下:
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8");
String filename = typeMap.get(empType)
// + new Timestamp(System.currentTimeMillis())
+ "一览";
response.setHeader("Content-Disposition", "attachment;filename="
+ new String(filename.getBytes("utf-8"), "iso8859-1") + ".xlsx");