2012-12-19 4 views
5

웹 서버 (http://example.com/img.jpg)에 이미지가 있습니다. 그 이미지를 브라우저에서 열고 디스크에 저장합니다.노드에서 HTTP를 통해 이진 파일을 읽으려면 어떻게해야합니까?

노드에서 'fs'모듈 (fs.readFileSync)을 통해 파일을 열면 0xff로 시작하는 버퍼가 생깁니다. 이는 예상했던 것입니다.

HTTP 요청에서 직접 동일한 결과를 얻을 수 있기를 바랍니다. 요청을하기 위해 '요청'모듈을 사용하고 있습니다.

request('http://example.com/img.jpg',function(error, response, body){ 
    //code here 
}); 

응답이나 본문을 FileSystem에서 가져온 것과 동등한 버퍼로 변환하는 방법을 알 수 없습니다. 내가 뭘 놓치고 있니?

답변

5

당신은 설정하여 Buffer를 얻을 수 encodingnull에 : buffer.toString()에 대한

request('http://example.com/img.jpg', { encoding: null }, function(error, response, body){ 
    console.log(Buffer.isBuffer(body)); // true 
}); 

request 취급 다른 값 as an argument, 기본값 "utf8"undefined.

관련 문제