在Chrome上的沙盒FileSystem中创建文件错误

时间:2012-03-16 10:19:46

标签: javascript html5 google-chrome fileapi

尝试使用沙盒FileSystem API创建文件:

window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;     
window.requestFileSystem(
    window.PERSISTENT, 
    1024 * 1024, 
    function( fs ) {       
        fs.root.getFile( 'test.txt', {create: true}, function( fe )
        {
            alert( "OK" );
        }, function( e )
        {
            alert( e.code );
        }
        );
    }, null
);

我总是在这段代码上得到错误代码10(QUOTA_EXCEEDED_ERR)。

Chrome:17.0.963.79 m,以--allow-file-access-from-files标记开头。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

对于持久性存储,您必须明确要求用户许可:

webkitStorageInfo.requestQuota( 
  webkitStorageInfo.PERSISTENT,

  1000, // amount of bytes you need

  function(availableBytes) {
    alert("Quota is available. Quota size: " + availableBytes);
    // you can use the filesystem now
  }
);

您也可以选择临时存储。

答案 1 :(得分:0)

pimvdb非常有用的答案。截至目前(2013年10月),Chrome报告webkitStorageInfo已弃用。相反,更喜欢以下内容:

navigator.webkitPersistentStorage.requestQuota(
  2048, //bytes of storage requested
  function(availableBytes) { 
    console.log(availableBytes);
  }
);

要请求临时存储,请使用navigator.webkitTemporaryStorage.requestQuota