1
我的前端代碼(反應)從我的後端(節點)獲取響應並按預期下載壓縮文件,但壓縮文件單擊時會生成CPGZ文件而不是解壓縮壓縮。FileSaver下載損壞的ZIP文件
陣營代碼
downloadResultsFile() {
fetch(`https://XXXXXXXX/api/download-results-file?jobName=${this.props.selectedRun.jobs[0].env.MIC_JOB_ID}`, {
origin: 'same-origin',
})
.then((res) => res.blob())
.then((file) => FileSaver.saveAs(file, this.props.selectedRun.jobs[0].env.MIC_JOB_ID + '-results.zip'));
}
節點代碼
downloadResults: function(app, s3){
app.use('/api', apiRoutes)
apiRoutes.get('/download-results-file', function(req, res, next){
res.set({'Content-type': 'text/plain'})
var params = {
Bucket: 'xxxxx',
Delimiter: '/',
Prefix: 'xxxxxx'
};
var filesArray = []
var files = s3.listObjectsV2(params).createReadStream()
var xml = new XmlStream(files)
xml.collect('Key')
xml.on('endElement: Key', function(item) {
filesArray.push(item['$text'].substr(params.Prefix.length))
})
var data = zip(filesArray, req.query.jobName, params)
xml.on('end', function() {
res.send(data.toString())
})
})
}
當我console.log(res)
上前端我得到的對象 「可寫流」。我將它轉換爲blob,然後使用FileSaver創建zip文件。任何幫助將不勝感激。謝謝!
此修復似乎正在解決問題https://github.com/eligrey/FileSaver.js/issues/156 – ramtech