Не удалось сохранить / загрузить объект данных блоба браузера

У меня есть веб-страница, на которой пользователь загружает видеофайл с помощью html-тега "input type = file". Я перехватываю загруженный видеофайл в переменную функции JavaScript, где он указывается в виде URL-адреса BLOB-объекта. "blob: https://www.myownsite.com:8080/2e8cfd32-abf2-4db3-b396-91f76cc3b40c". Я не могу сохранить этот BLOB-URL в моей системе.

HTML код:

<input type="file" name="video_file_name" accept="video/*">
<input type="submit" value="Upload Video" id="customVideoSubmit">
<button onClick="postVideo();" id="customVideoSubmit" aria- hidden="true">Upload Video</button>

Код JavaScript:

    function postVideo(){
    var blobURL = document.querySelector('video').src;
}

Переменная blob URL содержит следующий URL-адрес BLOB-объекта, который правильно воспроизводит видео, если я поместил его на отдельную вкладку этого браузера.

blob:https://www.myownsite.com:8080/2e8cfd32-abf2-4db3-b396-91f76cc3b40c

Как я могу сохранить этот видеофайл в моей системе. Я пробовал несколько методов JavaScript, а также методы back-end в моем коде Perl, как

decode_base64($cgi->{blobURL}) ;

Ничего не работает, хотя. Любая помощь будет высоко ценится.

1 ответ

Чтобы преобразовать Blob URL к Blob в POST на сервер вы можете использовать fetch() а также Response.blob()

const blobURL = URL.createObjectURL(new Blob([123]));
fetch(blobURL)
.then(response => response.blob())
.then(blob => {
  // do stuff with `blob`: `Blob`
  console.log(blob);
});

Другие вопросы по тегам