gpt4 book ai didi

javascript - 为什么这个文件系统 api requestQuota 调用失败?

转载 作者:搜寻专家 更新时间:2023-11-01 05:01:25 28 4
gpt4 key购买 nike

我正在编写一个在 Chrome 中运行的 HTML5 应用程序,但它将位于本地文件系统上(因此他们将通过双击 html 文件来启动它)。当我尝试访问文件系统时它抛出一个错误,我认为这是因为它是一个本地文件。有没有办法让 Chrome 允许这样做?

(注意:我确实收到弹出窗口,要求我允许应用程序永久存储,然后我单击“确定”。它仍然会引发此错误)

下面的代码会抛出错误:

DOMException {消息:“NotSupportedError:DOM 异常 9”,名称:“NotSupportedError”,代码:9,INDEX_SIZE_ERR:1,DOMSTRING_SIZE_ERR:2…}

filetest.html

<!DOCTYPE html>
<html>
<head></head>
<body>
<script>
//File System handler
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;

function onInitFs(fs) {
console.log('Opened file system: ' + fs.name);
}

function errorHandler(e) {
var msg = '';

switch (e.code) {
case FileError.QUOTA_EXCEEDED_ERR:
msg = 'QUOTA_EXCEEDED_ERR';
break;
case FileError.NOT_FOUND_ERR:
msg = 'NOT_FOUND_ERR';
break;
case FileError.SECURITY_ERR:
msg = 'SECURITY_ERR';
break;
case FileError.INVALID_MODIFICATION_ERR:
msg = 'INVALID_MODIFICATION_ERR';
break;
case FileError.INVALID_STATE_ERR:
msg = 'INVALID_STATE_ERR';
break;
default:
msg = 'Unknown Error';
break;
};

console.log('Error: ' + msg);
}

/** THIS CAUSES IT TO THROW AN ERROR */
window.webkitStorageInfo.requestQuota(window.PERSISTENT, 5*1024*1024, function(grantedBytes) {
window.requestFileSystem(window.PERSISTENT, grantedBytes, onInitFs, errorHandler);
}, function(e) {
console.log('Error', e);
});
</script>
</body>
</html>

如果我改为请求临时存储,它仍然会抛出错误,但现在是 SECURITY_ERR:

window.requestFileSystem(window.TEMPORARY, 5*1024*1024, onInitFs, errorHandler);

最佳答案

不确定这是最佳答案,但它似乎是对本地文件的安全限制。如下启动 Chrome 修复了这个问题:

google-chrome --allow-file-access-from-files

这将允许创建持久存储。

关于javascript - 为什么这个文件系统 api requestQuota 调用失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16487803/

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