gpt4 book ai didi

javascript - 在远程 Angular 应用程序中下载时 Excel 文件损坏

转载 作者:行者123 更新时间:2023-12-03 08:53:07 24 4
gpt4 key购买 nike

我有一段下载 Excel 报告的代码,它在我的本地 Web 服务器上运行得非常完美,但部署后 Excel 文件总是损坏,代码示例如下:

AngularJS:

$scope.getExcelFile = function(dateFrom, dateTo){

API.getExcelFile(dateFrom, dateTo).then(function(data){
var blob = {
data: [data.data],
filename: 'ExcelFile.xlsx',
options: {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
}
}
FileSaver.saveAs(blob);
});
}

API(JS):

this.getExcelFile= function(dateFrom, dateTo){
var promise = $http({
url: '/some/api/endpoint/' + dateFrom + '/' + dateTo,
method:'GET',
responseType: 'arraybuffer'
})
return promise;

PHP API - 注意,我无法提供其创建方式的所有代码,但我认为可以肯定地说,它与服务器/响应问题有关,而不是与文件构造有关,因为它在本地运行良好。

 $excelFileName = "ExcelFile.xlsx";
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $excelFileName . '"');
header('Cache-Control: max-age=0');
$objWriter->save('php://output'); // Output to browser

我注意到的一件事是不同的,当我在 chrome 检查器中查看远程响应时,在所有 excel 二进制内容之前有一个空行,在本地它没有这个空行。

任何有关如何解决此问题的建议将不胜感激

最佳答案

好吧,相当尴尬的是,这是 API 顶部配置脚本上结束 ?> 后出现杂散换行符的结果。因此响应中出现空白换行符。

理想情况下,您不应该再在 PHP 脚本的底部使用 ?>,这是一个遗留脚本。

(脸掌)

关于javascript - 在远程 Angular 应用程序中下载时 Excel 文件损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32608680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com