NodeJS和AngularJS:下载文件$ http.get()并保存到文件夹

时间:2017-10-13 11:56:30

标签: angularjs node.js electron fs angularjs-http

我正在使用 NodeJS和AngularJS 开发 Electron 应用,从网络服务下载mp3文件并将其保存到特定文件夹。 为此,我使用AngularJS $ http.get()下载文件和节点文件系统,将下载的数据保存到文件夹中。

我目前的问题是我无法正确保存文件。下载数据并创建文件,但它似乎已损坏。换句话说,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);
});

问题仍然存在。

1 个答案:

答案 0 :(得分:1)

您应该将responseType定义为blob:

<%@ page contentType="text/html; charset=UTF-8" language="java" %>

<%--
  Created by IntelliJ IDEA.
  User: Игорь
  Date: 07.10.2017
  Time: 13:18
  To change this template use File | Settings | File Templates.
--%>

<html>
<head>
    <title>Title</title>
</head>
<body>

<% System.out.println("Inside JSP file!!!!!!!!!!!!!!!!!!!"); %>

<h1>Contact Listing</h1>


SOME MESSAGE!

</body>
</html>