Spring Boot 无法打开响应返回的excel文件

bd1hkmkf  于 7个月前  发布在  Spring
关注(0)|答案(1)|浏览(99)

我使用了一个服务器端的程序,写了一个excel文件给响应,但是程序返回了一个无法正常打开的excel文件,经过测试,我发现了以下几种情况:
1.当服务器端程序在本地windows环境下运行时,一切正常,但在Linux测试环境下运行时返回的文件无法打开。
1.甚至连curl在Linux测试环境下下载的excel文件都打不开。
1.不使用响应直接保存时文件正常,确认写入响应时存在问题。
1.发生异常时返回的文件大小大于正常值。

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String fn = fileName + sdf.format(new Date()) + ".xlsx";

String utf = "UTF-8";

response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setCharacterEncoding(utf);
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "max-age=30");
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fn, utf));

字符串
我尝试更改excel文件的编码或字体,希望得到正常的返回,但返回的文件仍然无法打开。

fhity93d

fhity93d1#

我发现了这个bug。服务器上的一个额外的拦截器拦截了我的响应并将其转换为字符串,这导致了文件损坏

相关问题