【发布时间】:2015-08-28 10:50:24
【问题描述】:
我正在使用 MEAN,我希望允许用户从服务器下载 zip 文件。 所以基本上我必须做以下事情:
- 根据特定数据创建 csv 文件。
- 将该文件存储到某个目录中。
- 将这些文件压缩为 zip。
- 当用户点击按钮时,压缩文件应该被下载并且可读。
我完全达到了 1,2,3,部分达到了 4。在此我已经能够成功下载 zip 文件,但此文件格式已损坏,我无法读取此文件。
我的下载功能代码在这里:
html: 下载 CSV 报告
角部分:
$scope.downloadFiles = function() {
$http({
method: 'GET',
url: '/download/csv/files'
}).
success(function(data, status, headers, config) {
var anchor = angular.element('<a/>');
anchor.attr({
href: 'data:attachment' + encodeURI(data),
target: '_blank',
download: 'filename.zip'
})[0].click();
}).
error(function(data, status, headers, config) {
alertify.error(data);
});
};
NodeJS:
var path = require('path'),
fs = require('fs');
exports.downaloadAllCsv = function(req, res) {
var file = 'local path to my zip file',
filename = path.basename(file);
res.setHeader('Content-disposition', 'attachment; filename=' + filename);
res.setHeader('Content-type:',' application/zip');
var filestream = fs.createReadStream(file);
filestream.pipe(res);
};
【问题讨论】: