如何发送图像文件以便从Node后端下载到Angular前端?

时间:2015-01-07 01:24:08

标签: angularjs node.js express download

我有一个带有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);
});

哪个下载了该文件,但它一路上已损坏,无法打开。 任何建议将不胜感激。

0 个答案:

没有答案