我有一个带有Express后端和角度前端的应用程序。我正在尝试为图像文件创建文件下载链接,但是我遇到了将文件从express发送到angular的问题。我的角度看起来像这样......
scope.download = function(file){
http({method:'GET', url:'/get_download/' + file.id}).
success(function(data, status, headers, config) {
var element = angular.element('<a/>');
element.attr({
href: 'data:attachment;charset=utf-8,' + encodeURIComponent(data),
target: '_self',
download: file.name
})[0].click();
}).
error(function(data, status, headers, config) {
console.log("THERE WAS AN ERROR");
});
}
我在快递方面尝试过几种不同的东西,每种东西都会产生不同的错误。
首先我尝试了以下内容......
res.download("my_file_path", "my_file_name", function (err) {
if (err) {
console.log("ERROR");
console.log(err);
}
});
得到了这个错误......
path.js:360
throw new TypeError('Arguments to path.join must be strings');
^
TypeError: Arguments to path.join must be strings
然后我试了......
fs.readFile("my_file_path", function(err, data) {
res.writeHead(200, { 'Content-disposition': 'attachment' });
res.end(data);
});
哪个下载了该文件,但它一路上已损坏,无法打开。 任何建议将不胜感激。