2013-08-18 24 views
1

我知道默認情況下這是不允許的,你能幫助我如何更改安全設置,以便我可以寫入文件。 謝謝如何使用JavaScript將數據寫入文件?I

+1

你不行。試試https://github.com/dcneiner/Downloadify – SLaks

+0

來自網絡?你甚至可以重寫一些默認值。 – Bergi

+1

你想寫一個文件到實際的驅動器,或只是HTML5文件系統? – Antimony

回答

1

絕對沒有辦法用瀏覽器寫入文件。 但Chrome等現代瀏覽器允許您即時創建文件

在此示例中,我將一個textarea添加到文檔中。

這有一個事件偵聽平變化。(所以寫的東西,並對其進行模糊處理一下外面)

平變化它會讀取你的textarea的值,並將其轉換成的base64與btoa()

這是easely

將數據添加到新創建的錨點的href中,該錨點的前綴爲(text/plain)作爲mimetype和data:告訴瀏覽器它是DATA STRING而不是鏈接。

Chrome在錨上也有一個名爲download的新屬性。這基本上是文件名。

這是在現代瀏覽器中最快,最簡單的方法來創建一個文件客戶方..

,你只需要點擊下載。

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>write to file</title> 
</head> 
<body> 
<script> 
var t=document.createElement('textarea'); 
t.addEventListener('change',function(){ 
var a=document.createElement('a'); 
a.download='text.txt'; 
a.innerText='download'; 
a.href='data:text/plain;base64,'+btoa(this.value); 
document.body.appendChild(a); 
},false) 
document.body.appendChild(t); 
</script> 
</body> 
</html> 

另一種解決方案是使用也是現代瀏覽器只window.filesystem存儲在虛擬鉻緩存(temporany或持續性),你想要的文件。 文件系統可以將大文件存儲爲斑點並使用較少的資源。

然後有localstorage/indexedDB/websql的小文件。

在最後一個解決方案中,您需要將數據保存爲base64,否則您不能存儲您的信息。

在您的瀏覽器中有文件的所有解決方案中,您需要現代瀏覽器....但您需要下載該文件。

,如果你想要寫一個已存在的文件數據,可以使用FileReadr()FileWriter.append()並拖動&下降或只是一個簡單的文件輸入到選擇現有的文件。

相關問題