angularjs - NodeJS和AngularJS : Download file $http. get()并保存到文件夹

标签 angularjs node.js electron fs angularjs-http

我正在使用 NodeJS和AngularJS 开发 Electron 应用程序,以从Web服务下载mp3文件并将其保存到特定文件夹。
为此,我使用AngularJS $ http.get()下载文件,并使用Node File System将下载的数据保存到文件夹。

我目前的问题是我无法正确保存文件。数据已下载并已创建文件,但似乎已损坏。换句话说,MP3无法正常工作。

这是我在做什么的示例代码:

var fs = require("fs");
var path = require("path");

var resquest = $http.get(url, config).then(function(response)
{
    var downloadFolder = path.join(app.getAppPath(), '../../downloads/test.mp3');

    var filestream = fs.writeFile(downloadFolder, response.data, 'binary');
});

更新:根据@ hame-dhib建议测试了以下方法:
var request = $http({
    method:'GET',
    responseType: 'blob', //<---
    url:'http://api/',
    headers:
    {
        'Content-Type': 'audio/mpeg', //<---
        'Authorization': data.token
    }
}).then(function successCallback(response)
{
    var downloadFolder = path.join(app.getAppPath(), '../../downloads/test.mp3');

    var filestream = fs.writeFile(downloadFolder, response.data, 'binary');

}, function errorCallback(response)
{
    console.log(response);
});

问题仍然存在。

最佳答案

您应该将responseType定义为blob:

$http({
  method:'POST',
  responseType: 'blob', //<---
  url:'/api/lessons',
  data:{cards:lessonList},
  headers : {
    'Content-type' : 'audio/mpeg',
  }
}).success(function(data, status, headers, config){ ..

关于angularjs - NodeJS和AngularJS : Download file $http. get()并保存到文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46729398/

相关文章:

node.js - 从子进程到 API 的请求导致 ECONNRESET

javascript - Electron webContents.send 并不总是有效

javascript - Electron:将选项卡拖到另一个打开的窗口中

electron - 在 Electron 应用程序中使用 window.open

javascript - 如何迭代 Angular 数据表中的过滤行

node.js - 如何使用 Diet.js 收听多个 url?

javascript - 将 $rootScope 值存储在本地存储中,并在页面刷新时在另一个 Controller 中使用它

json - 如何使用 fetch 以 application/json 的内容类型发布

HTML css 表未对齐列

angularjs - 用ionic解析推送通知