2016-10-18 7 views
0
gfs.files.find({}).toArray(function(err, file) { 
    if (!err) { 
     console.log('file length ', file.length); 
     if (file.length > 0) { 
      file.forEach(function(each) { 
       process.setMaxListeners(0); 
       var mime = 'image/jpeg'; 
       res.set('Content-Type', mime); 
       read_stream = gfs.createReadStream({ "filename": each.filename }); 
       read_stream.pipe(res, { end: false }); 
       done++; 
      }); 
      read_stream.on('end', function() { 
       process.setMaxListeners(0); 
       if (done === file.length) { 
        res.send(); 
       } 

      }); 

     } else { 
      res.json('File Not Found'); 
     } 
    } 
}); 

これは正しく機能しません。ブラウザには1つのファイルのみが表示されます。これは何のZIPファイルでもありません。複数のファイルがノードjsの応答オブジェクトに追加されます

+1

あなたのコードの目標、試したこと、考えていることが何であるかを明記してください。 – DrakaSAN

+0

私はdatabase.Iの巨大な画像/オーディオ/ビデオファイルをフロントエンドに単一のAPI応答ですべてのファイルを送信したい。 –

答えて

1

ターゲットクライアントがWebブラウザの場合、httpプロトコルでは1回のリクエストで複数のダウンロードが許可されないため、できません。

あなたは、要求されたファイルでアーカイブ(zip)を作成して送信することが考えられます。

+1

レスポンスありがとう –

関連する問題