【问题标题】:writing to a file from chrome extension从 chrome 扩展写入文件
【发布时间】:2013-10-03 16:18:20
【问题描述】:

我需要从我的 chrome 扩展程序写入文件。我读到我可以为此使用 html5 文件 API。我复制了一段我在网上找到的简单代码,但它得到了 FileError.NOT_FOUND_ERR 异常。

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
    var gig=tab.url;
    var server_url="";
    if(lst_frame.length > 0){
        console.log(JSON.stringify(lst_frame, null, 2));

window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem; 
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;
  };
  alert(msg);
  console.log('Error: ' + msg);
}   
function onInitFs(fs) {
alert("1111");
  fs.root.getFile('/tmp/log.txt', {create: true, exclusive: true}, function(fileEntry) {
  alert("222");
    // fileEntry.isFile === true
    // fileEntry.name == 'log.txt'
    // fileEntry.fullPath == '/log.txt'

  }, errorHandler);

}

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

【问题讨论】:

标签: html google-chrome google-chrome-extension html5-filesystem


【解决方案1】:

从您的代码中不清楚/tmp/log.txt 是您Linux 机器上的绝对路径,还是HTML5 存储区域的相对路径,所以我只是提醒您HTML5 specification 是这样说的:

本规范定义了一种用于导航文件系统层次结构的 API,并定义了一种方式,用户代理可以通过该方式将用户本地文件系统的沙盒部分暴露给 Web 应用程序。

因此您不能将文件写入磁盘上的任何位置。

关于您的问题,您只需先创建/temp 目录:

function onInitFs(fs) 
{
  fs.root.getDirectory('/tmp', {create: true}, function() {}, errorHandler);
  fs.root.getFile('/tmp/log.txt', {create: true}, function() {}, errorHandler);
}

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多