2013-04-25 4 views
-1

노드 js 서버에서 여러 파일을 다운로드하려고합니다. 다음 코드를 사용하여 단일 파일을 다운로드 할 수 있습니다.NodeJS 서버에서 여러 파일 다운로드

res.download('group_documents/sample1.pdf','sample1.pdf', function(err){ 
    if (err) { 
    console.log(err); 
    } else { 
    // decrement a download credit etc 
    } 
}); 

클라이언트에서 단일 요청을 사용하여 파일을 다운로드하려면 어떻게해야합니까?

+0

및 (클라이언트에 대해 뭔가 브라우저를 마무리 : 각 객체는해야한다 또는 지금 클라이언트 노드입니까?). 질문을 수정하십시오 –

+0

실제로 여러 파일이 사용자의 다운로드 폴더에 나타나기를 기대합니까? 아니면 zip 파일 또는 다른 파일을 다운로드 할 수 있습니까? 한 번의 요청으로 여러 개의 독립 실행 형 파일을 사용할 수 없습니다. – loganfsmyth

답변

0

대상 클라이언트가 웹 브라우저 인 경우 HTTP 프로토콜은 단일 요청에 대해 여러 다운로드를 허용하지 않으므로 사용자가 웹 브라우저를 사용할 수 없습니다.

정말 필요한 경우 사용자 지정 클라이언트 응용 프로그램을 작성하거나 파일을 전송하기 전에 파일을 압축 파일로 압축해야합니다.

+0

HTTP 프로토콜에는 도메인 당 최대 동시 연결 사양이 없으며 브라우저 공급 업체에서 개발 한 것입니다. –

+1

@ RoelvanUden 나는 그 사실을 언급하지 않았으며, 하나의 요청에 대해 여러 응답을 제공 할 조항이 없다. – paul

+0

흠, 나는 단지 거기에서 충분히 지체했다. 미안합니다. :-) –

0

웹 브라우저에서는 한 번에 여러 파일을 다운로드 할 수 없습니다. 그러나 필요한 모든 파일의 보관 파일을 다운로드 할 수 있습니다. express-zip npm 패키지를 사용하면 쉽게 할 수 있습니다.

https://github.com/thrackle/express-zip

특급 지퍼를 설치합니다. 다음 코드

npm install express-zip 

사용 :

res.zip(files); 

파일은 객체의 배열입니다. 당신은 NodeJS 서버 (따라서 브라우저), 다음 익스프레스 코드 (따라서 서버)를 보여주는 시작에서 파일을 다운로드하는 방법에 대한 이야기 ​​

{ path : 'path/to/file', name : 'fileName'}