如何在我的chrome应用程序中访问本地文件?

时间:2014-12-10 10:52:38

标签: javascript google-chrome google-chrome-extension filesystems

我编写的Chrome应用程序使用本地文件,存储在indexedbd中的本地链接。

我的逻辑:

  1. 在bd;
  2. 中保存本地链接
  3. 从indexedBD获取本地链接。
  4. 通过本地链接将文件上传到fileSystem。
  5. 出于任何目的使用fileSystem中的文件。
  6. 以下代码不起作用:

    window.requestFileSystem(TEMPORARY, 1024 * 1204, function(fileSystem) {
     fs = fileSystem;
     cwd = fs.root;
     //renderImages(cwd);
    }, onError);
    
    fs.root.getFile('C:\Images\Test\cat.jpg', {create: true, exclusive: true}, function (fileEntry) {
       if (fileEntry.isFile === true) {
         $("#myimage").attr("src", fileEntry.toURL());
       }
    });
    
    
    $("#myimage").attr("src", fileEntry.fullpath);
    Error: GET chrome-extension://acnoddeoamaikpmmdkehnkppmcgcpfjl/C:ImagesTestcat.jpg net::ERR_FILE_NOT_FOUND
    

    感谢您的任何建议!

2 个答案:

答案 0 :(得分:1)

不,您无法访问本地文件,这对用户的计算机来说是一个很大的安全威胁,您可以使用浏览器本地存储或cookie存储等。

答案 1 :(得分:1)

requestFileSystem创建一个虚拟的沙盒文件系统供您使用,但您无法通过它访问本地文件。您请求的文件系统在创建时基本为空。

Chrome扩展程序原则上无法访问本地文件,但native host可以绕过该文件。

Chrome应用可以使用fileSystem API请求访问本地文件系统的某些部分。你可以"保留"条目并将其保存在您的数据库中以供以后重用。