使用FileSystem Api在Javascript中写入文件 [英] Writing to a file in Javascript using FileSystem Api

查看:908
本文介绍了使用FileSystem Api在Javascript中写入文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在Chrome中使用FileSystem API写入本地文件系统。我在执行


时出现以下错误:不推荐使用FileError。请使用DOMError的'name'或'message'属性而不是'code'。



  window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; 

var fs = null;

函数errorHandler(e){
alert(hi);
var msg ='';
switch(e.code){//错误报告在这里
case FileError.QUOTA_EXCEEDED_ERR:
msg ='QUOTA_EXCEEDED_ERR';
休息;
case FileError.NOT_FOUND_ERR:
msg ='NOT_FOUND_ERR';
休息;
case FileError.SECURITY_ERR:
msg ='SECURITY_ERR';
休息;
case FileError.INVALID_MODIFICATION_ERR:
msg ='INVALID_MODIFICATION_ERR';
休息;
case FileError.INVALID_STATE_ERR:
msg ='INVALID_STATE_ERR';
休息;
默认值:
msg ='未知错误';
休息;



函数onInitFs(fs){
alert(hi);

fs.root.getFile('log.txt',{create:true},function(fileEntry){

//为FileEntry创建一个FileWriter对象.txt)。
fileEntry.createWriter(function(fileWriter){

fileWriter.onwriteend = function(e){
console.log('Write completed。');
};

fileWriter.onerror = function(e){
console.log('Write failed:'+ e.toString());
};

//创建一个新的Blob并将其写入log.txt。
var blob = new Blob(['Add some text'],{type:'text / plain'});

fileWriter.write(blob);
},errorHandler);
},errorHandler);


函数initFS(){
window.requestFileSystem(window.TEMPORARY,1024 * 1024,onInitFs,errorHandler);


if(window.requestFileSystem){
initFS();
}

由于我知道执行过程会转到 errorHandler 方法我假设我在调用 requestFileSystem()方法时出错。我非常感谢这里的帮助。在此先感谢

进一步的研究表明,它会因安全错误而失败。我怎么基本上绕过这个

解决方案

好像你的errorHandler没有用msg做任何事情。试试这个:

  function errorHandler(e){console.log(ERROR !: name:[+ e.name + ] message:[+ e.message +]); } 


I am trying to write to local file system using FileSystem API in Chrome. I am getting the following error while executing

FileError is deprecated. Please use the 'name' or 'message' attributes of DOMError rather than 'code'.

window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem;

var fs = null;

function errorHandler(e) {
  alert("hi");
  var msg = '';
  switch (e.code) {    //Error is being reported here
    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;
  }
}

function onInitFs(fs) {
  alert("hi");

  fs.root.getFile('log.txt', {create: true}, function(fileEntry) {

    // Create a FileWriter object for our FileEntry (log.txt).
    fileEntry.createWriter(function(fileWriter) {

      fileWriter.onwriteend = function(e) {
        console.log('Write completed.');
      };

      fileWriter.onerror = function(e) {
        console.log('Write failed: ' + e.toString());
      };

      // Create a new Blob and write it to log.txt.
      var blob = new Blob(['Add some text'], {type: 'text/plain'});

      fileWriter.write(blob);
    }, errorHandler);
  }, errorHandler);
}

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

if (window.requestFileSystem) {
  initFS();
}

And since i know the execution goes to errorHandler method i assume i am doing something wrong while calling the requestFileSystem() method. I would really appreciate help here. Thanks in advance

Further research shows that it fails with security error. How do i basically bypass that

解决方案

Seems like your errorHandler wasn't doing anything with msg anyway. Try this:

function errorHandler(e) {  console.log("ERROR!: name: [" + e.name + "] message: [" + e.message + "]");  }

这篇关于使用FileSystem Api在Javascript中写入文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆