![](/img/trans.png)
[英]HTML5 FileApi + FileReader - Feed <object> with SWF
[英]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.