0

xhr.send(Blob) を介した BLOB のアップロードに関して少し問題があります。私は、ユーザーが getUserMedia() を介してビデオを作成する Web サイトを持っています。これは、ブロブを通じて Web サイト内に配置され、ビデオの結果に満足するまで何度も記録できます。ファイルをダウンロードせずに、フォームを使用してビデオをアップロードすることなく、ビデオをサーバーにアップロードできるようにしてほしい。だから私は xhr.send を通してこれを作ることができました

function sendXHR(){
var xhr = new XMLHttpRequest();
var video=$("#myexportingvideo");
xhr.open('GET', video.src , true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
  if (this.status == 200) {
    // Note: .response instead of .responseText
    var blob = new Blob([this.response], {type: 'video/webm'});
    console.log(blob.size/1024);
    console.log(blob.type);

    form = new FormData(),
    request = new XMLHttpRequest();
    form.append("myblob",blob,"Capture.webm");
    request.open(
                "POST",
                "../TryExtension/upload_file.php",
                true
            );
    //request.send(blob);
    request.send(form);
  }
};
xhr.send();
}

問題は、ブロブのサイズが約 1.8 MB を超える場合、送信されるデータが 0 になることです。したがって、基本的に私の質問は、ブロブのサイズに制限はありますか、それともブロブをチャンクでサーバーに送信する必要がありますか? 問題の例は次のとおりです。


コンソール ログ

   frames captured: 32 => 1.077s video vid.js:155
   XHR finished loading: "blob:http%3A//localhost/19d162ae-c22e-48af-a83d-2ddd579ffff9". vid.js:240
   1199.46484375 vid.js:225
   video/webm vid.js:226
   XHR finished loading: "http://localhost/TryExtension/upload_file.php". vid.js:237
   frames captured: 91 => 3.052s video vid.js:155
   XHR finished loading: "blob:http%3A//localhost/c7d4f3c6-88c8-43c5-9adb-b9060c93bfb3". vid.js:240
   3402.873046875 vid.js:225
   video/webm vid.js:226
   XHR finished loading: "http://localhost/TryExtension/upload_file.php". 

最初のビデオは正しくアップロードされますが、次のビデオは 0 バイトの情報でアップロードされます。ご協力いただきありがとうございます。

4

0 に答える 0