相关疑难解决方法(0)

如何使用navigator而不是window.webkitStorageInfo HTML5文件系统API?

所以这里有一个类似的帖子html-5-filesystem-access-type-error.但是,我对结论不是很满意,因为我觉得它实际上没有回答这个问题 - 给出的解决方案是不推荐使用的代码解决方案.有没有人知道如何使用navigator而不是window像Chrome控制台通知那样做?

我一直在使用以下它可以工作,但Chrome控制台一直告诉我不要这样做,因为它已被弃用.

工作不推荐的代码

window.webkitStorageInfo.requestQuota(PERSISTENT, 1024*1024*280, function(grantedBytes) {
    window.webkitRequestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler); 
}, function(e) {
    console.log('Error', e); 
});
Run Code Online (Sandbox Code Playgroud)

注意:onInitFs并且errorHandler它们都是在其他地方定义的功能.

控制台日志 - 我在控制台中收到的消息如下:

'window.webkitStorageInfo' is deprecated. Please use 'navigator.webkitTemporaryStorage'
or 'navigator.webkitPersistentStorage' instead. 
Run Code Online (Sandbox Code Playgroud)

因此,最佳做法是停止使用已弃用的方法.不幸的是,当我windownavigator它更换崩溃时(见下文).如何使用navigator而不是window访问文件系统?

javascript html5 google-chrome web-storage html5-filesystem

23
推荐指数
3
解决办法
3万
查看次数

巨大的JavaScript HTML5 blob(来自大型ArrayBuffers)在客户端构建一个巨大的文件

我正在编写一个Web浏览器应用程序(客户端),它从许多位置下载大量的块并加入它们来构建blob.然后该blob作为公共文件保存到本地文件系统.我这样做的方式是使用ArrayBuffer对象和blob.

var blob = new Blob([ArrayBuffer1, ArrayBuffer2, ArrayBuffer3, ...], {type: mimetype})

这适用于中小型文件(直到700 MB aprox),但浏览器崩溃时文件较大.我知道RAM内存有其局限性.情况是我需要构建blob以生成文件,但我想让用户下载比这个大得多的文件(想象一下,例如,大约8GB的文件).

¿如何构建blob以避免大小限制?LocalStorage比RAM更受限制,因此我不知道该使用什么或如何使用它.

javascript html5 google-chrome blob html5-filesystem

17
推荐指数
1
解决办法
7763
查看次数

Filesystem API在Chrome v27和v29中无效

我正在尝试设置一个文件存储空间以供以后在Phonegap中使用,但现在在Chrome中进行调试.按照html5rocks中描述的方式只允许我从用户请求配额,但是不执行请求文件系统时的回调.看到:

window.webkitStorageInfo.requestQuota(PERSISTENT, 1024*1024*1024, function(grantedBytes) {
    requestFS(grantedBytes);
}, onError);

function requestFS(grantedBytes) {
    window.webkitRequestFileSystem(window.PERSISTENT, grantedBytes, function(fs) {
        // ... does not get called ###################################
    }, onError);
}
Run Code Online (Sandbox Code Playgroud)

现在Chrome警告我,webkitStorageInfo已被弃用,并且今天有一个新标准https://dvcs.w3.org/hg/quota/raw-file/tip/Overview.html.我尝试使用navigator.webkitPersistentStorage但没有成功.

文件系统API是否可能当前不工作或已被弃用,或者我的上述代码可能有问题?

下面的函数也没有做任何事情,没有错误可见:

navigator.webkitPersistentStorage.queryUsageAndQuota(function(usage, quota) {
    console.log(arguments);

    navigator.webkitPersistentStorage.requestQuota(1024 * 1024, function(grantedQuota) {
        console.log(arguments);

        window.webkitRequestFileSystem(window.PERSISTENT, 1024 * 1024, function(fs) {
            console.log(arguments);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

更新:

我得到了Eric Bidelman工作的Filer,所以我的代码中的某些东西一定是错的,尽管我看不出Filer init方法和我正在做的事情之间的区别.

javascript html5 google-chrome fileapi cordova

6
推荐指数
1
解决办法
7125
查看次数