gpt4 book ai didi

javascript - 如何通过 javascript 文件 api 读取大(>300 MB)图像或视频文件,将其存储在本地,检索并显示?

转载 作者:行者123 更新时间:2023-11-30 12:07:02 33 4
gpt4 key购买 nike

我必须读取用户使用 javascript 的文件 api 上传的大文件。由于这个文件很大,按原样读取它会使浏览器崩溃。因此,我对文件进行切片,它形成了一个 blob 数组(切片方法可以创建任何其他类型的数组吗?)。

JS代码:

var chunkSize = 100000; 
var currentStart = 0;
var currentEnd = Math.min(currentStart+chunkSize, file.size);
while(currentEnd != file.size){
var blobPart = file.slice(currentStart, currentEnd);
blobs.push(blobPart);
currentStart = currentEnd+1;
currentEnd = Math.min(currentStart+chunkSize, file.size);
}

在此之后,我有一个名为“blob”的 blob 数组。我如何存储这个数组(我正在使用 localforage (indexeddb))。目前我正在按原样存储 blob 数组。

JS代码:

    localforage.setItem(file.name,blobs,function(){
localforage.getItem(file.name, function(err, value){
var fullRetrievedBlobArray = [];
var x = value;

});
});

将它转换成其他东西有帮助吗?或者我应该读取“blob”数组中的 blob 并将它们转换为一个大数组吗? (如果是,我该怎么做?)。

检索后 x 将包含我存储的 blob 数组。 现在如何合并此 blob 以将原始文件作为大数据 url?

Snapshot of the retrieved 'blobs' array

如果我以类似的方式上传视频?如何合并 blob 数组以形成数据 url 以添加到 html 5 视频标签的属性标签?另外,有人可以提供一些关于 localforage 如何存储这个数组的高级解释吗?是直接设置吗?

最佳答案

blob 构造函数采用缓冲区、字符串和其他 blob 的混合数组:

var hugeBlob = new Blob(blobs, {type: "video/mp4"});
document.getElementById("video").src = URL.createObjectURL(hugeBlob);

关于javascript - 如何通过 javascript 文件 api 读取大(>300 MB)图像或视频文件,将其存储在本地,检索并显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34894869/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com