2017-10-13 8 views
0

폴더로 저장합니다. 이를 위해 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'); 
}); 

UPDATE :

여기에 내가 뭘하는지의 샘플 코드의 테스트 @의 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

거기에 무슨 일이 일어나고 있는지 불분명하다. AngularJS (클라이언트 측)가 Node fs (서버 측)를 어떻게 호출합니까? 전자 앱입니까? 문제는 명확하게 문제를 기술해야합니다. '여전히 지속됩니다'에 관해서는 http://stackoverflow.com/help/mcve – estus

+0

@estus를 제공하십시오. 전자 앱에 대해서는 언급하지 않았다. 내 질문을 업데이트했습니다. – Ricky

답변

1

당신은 BLOB으로 responseType을 정의해야합니다 :

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