gpt4 book ai didi

javascript - 如何在 Safari 中使用 JavaScript 保存大型 (8MB) 文件?

转载 作者:可可西里 更新时间:2023-11-01 14:54:41 26 4
gpt4 key购买 nike

我正在寻找一种在 Safari 中保存大文件(恰好 8 兆字节)的方法。我已经尝试使用 URI 方案以及 eligreyFileSaver 和 flash 插件 Downloadify。所有这些都会导致 Safari 分配内存,直到 Web 工作进程达到大约 2 GB,然后 Safari 崩溃。

我知道以前有过类似的问题,但我已经尝试了所有这些问题的结果。链接:

此代码适用于 Firefox 和 Google Chrome(使用 eligreyFileSaver 库保存为):

function io_saveData (){
var bb;
var buffer;
var data;

alert ("The file will now be saved.");

bb = new BlobBuilder();
for (var i = 0;i<kMapHeight;i++){
var stduint8 = new Uint8Array (uint16map[i].buffer);
var stduint8LittleEndian = new Uint8Array (kMapWidth*2);

//byte swap work around
for (var j = 0;j<stduint8.length;j+=2){
stduint8LittleEndian [j] = stduint8 [j+1]
stduint8LittleEndian [j+1] = stduint8 [j];

}

bb.append(stduint8LittleEndian.buffer);
}

var blob = bb.getBlob("example/binary");
saveAs(blob, "Data File");

bb = null;
buffer = null;
data = null;
}

我正在寻找一种方法让 Safari 在不崩溃的情况下创建下载。部署区域是 Mac OS X,因此每台机器都将内置 apache 和 PHP,不过我宁愿不走那条路。

最佳答案

给你。首先将文件存储在 HTML5 文件系统中,完成数据存储后使用 filesaver api 下载它。我致力于此,并且在没有阻塞 UI 和浏览器崩溃的情况下获得了良好的结果。最好在 webworkers 中执行此操作以获得应用程序的性能。

这里有一些有用的文章。

TEMPORARY storage has a default quota of 50% of available disk as a shared pool. (50GB => 25GB) (Not restricted to 1GB anymore)

http://updates.html5rocks.com/tag/filesystem

关于javascript - 如何在 Safari 中使用 JavaScript 保存大型 (8MB) 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278397/

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