背景コード:
公共のActionResultビデオ() { 文字列 filePathに= @ " D:\ダウンロード\のtest.mp4 " ; System.IO.FileInfoのfileInfo = 新しいSystem.IO.FileInfo(filePathに); もし(fileInfo.Exists == 真) { のFileStream FS = 新規のFileStream(filePathに、FileMode.Open)。 バイト []バイト= 新しい バイト [(INT )fs.Length]。 fs.Read(バイト0 、bytes.Length)。 fs.Close(); //Response.AddHeader( "コンテンツの廃棄"、 "添付ファイル;ファイル名=" + HttpUtility.UrlEncode(fileInfo.Name))。 Response.AddHeader(" のContent-Length "、"" + fileInfo.Length.ToString()); Response.AddHeader(「コンテンツ転送エンコード」、「バイナリ」); Response.ContentTypeの = 「アプリケーション/オクテットストリーム」。 Response.ContentEncoding = System.Text.Encoding.UTF8。 Response.BinaryWrite(バイト)。 Response.Flush(); } }
フロントコード:
HTML: <動画ID = " VIDEO_PLAYER "幅= " 660 "高さ= " 364 "コントロール= " コントロール" > </ビデオ> のJs: // XMLHttpRequestオブジェクトの作成 するvar XHR = 新新のXMLHttpRequest(); // 設定要求モードを、そして要求されたアドレスが同期され xhr.open(「POST 」、「接続のビデオ」、trueに;) // BLOBへの要求タイプの結果を設定し xhr.responseType = "をブロブ" ; // リクエストは、コールバックに成功 xhr.onload = {機能(E)を IF(この .statusの== 200である){ // リクエストが成功した // ブロブを取得 するvarブロブを= この; .response するvarビデオ=のdocument.getElementById(' VIDEO_PLAYER ' ); //は、ブロブのアドレスを取得し、コンテナに値を代入 するvar = obj_url window.URL.createObjectURL(ブロブ); video.src = obj_url; //video.play(); setTimeout(" revokeUrl( ' " + obj_url + " ')" " 2000 " ); } }。 xhr.send(); revokeUrl(URL){機能 window.URL.revokeObjectURL(URL)を。 }