ホームページ > 記事 > ウェブフロントエンド > Nodejsで大きなファイルを読み取る方法
この記事は、オンラインビデオなどの大きなファイルを詳細に読み取るためのnodejsを主に紹介します。興味のある友人はそれを参照してください。
nodejsがビデオを読み取るときは、一度限りの読み取りとは異なります。このように、再生前にすべてのバッファリングが完了するのを待つ必要がなく、クライアントの再生がバッファリング中に再生されるように、その一部を読み取って一部を返す必要があります。
古いルール、説明するコードを投稿するだけです:
var fs = require('fs'); function readBigFileEntry(filename, response) { path.exists(filename, function(exists) { if (!filename || !exists) { response.writeHead(404); response.end(); return; } var readStream = fs.ReadStream(filename); var contentType = 'none'; var ext = path.extname(filename); switch (ext) { case ".flv": contentType = "video/flv"; break; } response.writeHead(200, { 'Content-Type' : contentType, 'Accept-Ranges' : 'bytes', 'Server' : 'Microsoft-IIS/7.5', 'X-Powered-By' : 'ASP.NET' }); readStream.on('close', function() { response.end(); console.log("Stream finished."); }); readStream.pipe(response); }); }
fs モジュールの ReadStream メソッドを通じてビデオ ストリームを取得し、終了イベントをバインドします: ストリームが最後まで読み取られたときに応答リクエストを終了し、最後に実行しますパイプ方式による小さなチャンク 小さなブロックの読み取り。 Content-Length 属性はセグメントで読み取る必要があるため、ここではヘッダ情報に追加できません。この属性が追加されると、ブラウザはリクエストが終了したと判断してリクエストを閉じます。
上記は私があなたのためにまとめたものです。
関連記事:
WeChatミニプログラムで画像切り替え表示を実現するスワイパーコンポーネントの使い方
Vue のデバッグ ツール vue-devtools について (詳細なチュートリアル)
Vue を使用して統合された Iframe ページを実装する方法
以上がNodejsで大きなファイルを読み取る方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。