目前,节点流式传输了我的文件log1.tar.gz并直接在服务器端创建了一个新文件。我想将gzip
作为附件发送回Angular2客户端,但我不知道为什么客户端无法获取它。在构建Chrome时,我检查了请求标题,显示:显示临时标题。
这是我的服务器端代码:
app.get('/*', function (req, res) {
let file = fs.createReadStream('./log1.tar.gz')
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream('./get_logs11.tar.gz'))
req.on('response', (res) => {
res.writeHeader(200, {
'Content-Type': 'application/x-zip',
'Content-Encoding': 'gzip',
'Content-disposition': 'attachment; filename=myFile.zip',
});
res.pipe(file)
})
});
客户端使用Angular: `
public downloadLogs(path) {
this.http.get(`http://localhost:4200/jsonrpc/download?
path=${path}`).toPromise()
.then((data) => {
console.log('data after download', data)
})
` .catch(error => console.log('error', error))
}
` 我从来没有从客户端获取数据。谁知道为什么?谢谢!