gpt4 book ai didi

node.js - 从带有 Node 和 Angular 5 的 Linux 服务器下载 zip 文件时,zip 文件成功下载但 EMPTY

转载 作者:搜寻专家 更新时间:2023-11-01 00:50:04 25 4
gpt4 key购买 nike

在我的 services.service.ts 文件中,我传递了一个 zip 名称并调用了路由

服务.服务.ts

downloadFile(name) {
console.log(name);
let newName = name+".zip";
console.log(newName);
return this.http
.get(`/services/downloadFile/${name}`, {
responseType: ResponseContentType.Blob })
.pipe(map(res => {
return {
filename: newName,
data: res.blob()
};
}))
.subscribe(res => {
// console.log('start download:',res);
var url = window.URL.createObjectURL(res.data);
var a = document.createElement('a');
document.body.appendChild(a);
a.setAttribute('style', 'display: none');
a.href = url;
a.download = res.filename;
a.click();
window.URL.revokeObjectURL(url);
a.remove(); // remove the element
}, error => {
console.log('download error:', JSON.stringify(error));
}, () => {
console.log('Completed file download.')
});
}

在我从 service.js 调用此路由后,zip 文件被下载到 Windows 但没有数据服务.js

router.get('/downloadFile/:name', function (req, res) {
let name = req.params.name;
let newName = name+".zip";
res.download(`./config/${newName}`, newName, function (err) {

if (err) {
console.log(err);
console.log("ERROR APPEARED");
} else {
console.log('file uploaded :)');
}
});
});

此代码执行时没有错误(我会在控制台中看到“文件已上传:)”)但是下载的 zip 我无法打开或提取,因为它不包含数据(适当的数据)

最佳答案

我曾经遇到过类似的问题 - 如果您使用基于 token 的身份验证,您可能忘记将这些添加到 header 中,请尝试:

.get(`/services/downloadFile/${name}`, {headers: new Headers({
'Content-Type': 'application/json', // INFO: Format set to JSON
'authorization': yourAuth.token.etc // INFO: Attach token
}),responseType: ResponseContentType.Blob })

希望能帮助您解决问题..

关于node.js - 从带有 Node 和 Angular 5 的 Linux 服务器下载 zip 文件时,zip 文件成功下载但 EMPTY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53334663/

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