Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 下载后XLSX文件已损坏_Javascript_Angularjs - Fatal编程技术网

Javascript 下载后XLSX文件已损坏

Javascript 下载后XLSX文件已损坏,javascript,angularjs,Javascript,Angularjs,我正试图从angular前端下载java后端生成的xlsx文件,我将该文件作为带有Content Disposition header的附件获取,并且我能够使用下面的js代码下载该文件,但当我尝试打开它时,它总是损坏的 var data = response; //from server var blob = new Blob([data], { type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.mai

我正试图从angular前端下载java后端生成的xlsx文件,我将该文件作为带有Content Disposition header的附件获取,并且我能够使用下面的js代码下载该文件,但当我尝试打开它时,它总是损坏的

var data = response; //from server
var blob = new Blob([data], { type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml;charset=UTF-8"});
var link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = 'filname.xlsx';
link.click();
如果我在控制台上记录服务器响应,下面是我发现的

编辑:

当我试图打开下载的文件时,请参见下图


有人能帮我吗

我对AngularJS 1.6.1也有同样的问题。当我从浏览器或
window.open(“url”)
调用我的HTTP GET服务时,xlsx文件被完美下载:304628字节。但是,AngularJS提供的
response.data
有289414个字节,Blob包装有550963个字节,这是作为损坏文件下载的。如果在zip中返回xlsx,也会发生同样的行为

我通过将
XMLHttpRequest.responseType
属性设置为:

$http.get(url, {responseType:'arraybuffer'});

您正在向我们显示console.log结果,但未显示调用。。。所以很难说。但看看日志,它似乎是正确的内容,你为什么说它是腐败的?@salketter我更新了这个问题。请看它是否有用。如果需要,我也可以发布API调用。好的,试着解压缩文件(将其视为.zip文件),如果它工作,这意味着它没有损坏,但生成文件时出现了问题。如果缺少XML部分,或者某些参数设置不正确,则可能会发生这种情况。此外,您可以尝试使用已知良好的文件来首先测试下载代码。。。