我正在使用 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);
});
问题仍然存在。
答案 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>