SimpleXLSXGen部署后导出XLSX出现.xlsxxlsx重复后缀问题求助
问题原因
SimpleXLSXGen 的 downloadAs() 方法内置自动追加 .xlsx 后缀的逻辑,会直接在传入的文件名末尾拼接后缀。
你当前拼接$arquivo时已经手动追加了.xlsx后缀,叠加方法自动追加的部分,就会生成.xlsxxlsx这类重复后缀的文件名。
部署3个月后才出现问题,通常是两个原因:要么你近期修改文件名拼接逻辑时新增了手动后缀,要么是服务器端的SimpleXLSXGen.php被更新到了带自动补后缀逻辑的新版本。
解决方案
- 优先调整自有代码:移除手动拼接的
xlsx后缀,让downloadAs()自动补全一次即可。
原有代码:
修改为:$arquivo = 'activosfijos'.gmdate("D,d M Y").'xlsx';
最终生成的文件名会自动补全为正确的$arquivo = 'activosfijos'.gmdate("D,d M Y");activosfijosTue,30 Mar 2021.xlsx。 - 若需要完全手动控制后缀逻辑:可以修改
SimpleXLSXGen.php中downloadAs()方法的后缀拼接逻辑,增加判断:如果传入的文件名已经以.xlsx结尾,就不再追加后缀。该方案属于修改第三方依赖,后续升级库文件时改动会被覆盖,不推荐优先使用。
补充说明:当前日期格式包含空格、逗号,部分特殊下载环境会自动将其替换为下划线,不影响文件正常读取,如果对文件名格式有要求,可以调整
gmdate的格式,比如改成gmdate("D_d_M_Y")避免特殊字符。
内容的提问来源于stack exchange,提问作者gwkogure
相关产品推荐
相关产品推荐

