簡體   English   中英

HTML5 - FileAPI - 編寫文件

[英]HTML5 - FileAPI - writing files

我正在使用JavaScript和HTML5創建應用程序。 我需要將數據寫入特定文件,因此我想在代碼中設置文件路徑。 這樣做不是問題:

function onInitFs(fs) {
    console.log('Opened file system: ' + fs.name);
}
window.webkitRequestFileSystem(window.TEMPORARY, 5 * 1024 * 1024 /* 5MB */, onInitFs, errHandl);

但問題是,它會調用安全錯誤,因為沒有為exe文件設置--allow-file-access-from-files files。 我不想為所有頁面設置它。 我想只為我的頁面設置,我從本地文件系統打開的那個

例如,它可能是index.html:

C:\page\index.html.

有沒有辦法做到這一點?

我知道manifest.json,但這意味着我必須通過Chrome商店分發我的應用程序。 這對我來說是不可接受的,我的項目在這方面沒有任何意義。

FileAPI的想法是擁有一個虛擬沙盒文件系統,而不是管理操作系統文件系統。 你不能從用戶的驅動器編輯一些任意文件,這將是一個巨大的安全漏洞。

您可能想要做的是動態生成頁面 如下例所示,保存第一個內容(html),然后加載並添加到頁面:

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

  fs.root.getFile(FILE_NAME, {create: true}, function(fileEntry){
    fileEntry.createWriter(function(fw){
      fw.onwriteend = function(e){ console.info('Write completed'); }
      fw.onerror = function(e){ console.log('Error:'+e.toString()); }

      var blobToWrite = new Blob(['<span>test</span>'], {type: 'text/plain'});
      fw.write(blobToWrite);
    }, null);

    console.log(fileEntry.toURL());
  }, null);

    fs.root.getFile(FILE_NAME, {}, function(fileEntry) {

    fileEntry.file(function(file) {
       var reader = new FileReader();

       reader.onloadend = function(e) {
         var someDiv = document.createElement('div');
         someDiv.innerHTML = this.result;
         document.body.appendChild(someDiv);
       };

       reader.readAsText(file);
    }, null);

  }, null);
}

希望有幫助:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM