【问题标题】:Not able to save/download browser blob data object无法保存/下载浏览器 blob 数据对象
【发布时间】:2018-03-20 03:57:34
【问题描述】:

我有一个网页,用户使用 html 的“输入类型 = 文件”标签上传视频文件,我在 JavaScript 函数变量中捕获上传的视频文件,它作为 blob URL 出现。 “斑点: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;
}

变量 blobURL 包含以下 blob URL,如果我将其放在该浏览器的单独选项卡上,它将正确播放视频。

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

如何将这个 blob 视频文件保存在我的系统中。我已经在我的 Perl 代码中尝试了许多 JavaScript 方法和后端方法,例如

decode_base64($cgi->{blobURL}) ;

但没有任何效果。任何帮助将不胜感激。

【问题讨论】:

  • Blob URL 是在哪里创建的?是否需要将文件保存到本地文件系统或服务器?
  • 在服务器上。 blobURL 有服务器路径,但它只在浏览器内存中。 blobURL 正在由浏览器创建。它是一个浏览器对象。
  • POST data URIBlobFile 表示文件到服务器,请参阅 stackoverflow.com/questions/46557180/…
  • 我可以将 blobURL 发布到服务器。我的后端 Perl 脚本中的 Perl CGI 变量 $cgi->{'blobURL'} 具有 blobURL 的完整 URL 路径。所以,我在服务器后端有 blobURL 只是不知道如何保存它。
  • Blob URL 转换为Blob。无法在服务器上处理Blob URL

标签: javascript perl browser html5-video bloburls


【解决方案1】:

要将Blob URL 转换为BlobPOST 到服务器,您可以使用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);
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-09
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 2015-08-17
  • 1970-01-01
  • 2019-06-13
相关资源
最近更新 更多