如何使用javascript将数据写入文件?我

时间:2013-08-18 15:54:18

标签: javascript file security

我知道默认情况下这是不允许的,你能帮我更改安全设置,以便我可以写入文件。 谢谢

1 个答案:

答案 0 :(得分:1)

绝对没有办法用浏览器写入文件。 但Chrome等现代浏览器允许您即时创建文件

在这个例子中,我在文档中添加了一个textarea。

这有一个eventlistener onchange。(所以写点东西并点击外面模糊)

onchange它读取textarea的值并将其转换为base64

使用btoa()

轻松完成

将数据添加到新创建的锚点的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,它将您想要的文件存储在虚拟chrome缓存中(temporany或persistant)。 文件系统可以将大文件存储为blob,并且使用的资源很少。

然后有一个localstorage / indexedDB / websql用于小文件。

在最后一个解决方案中,您需要将数据保存为base64,否则您无法存储信息。

在浏览器中有文件的所有解决方案中,您需要一个现代浏览器....但您需要下载该文件。

如果您想在现有文件上撰写数据,可以将FileReadr()FileWriter.append()一起使用,然后拖放&amp;删除或只是一个简单的文件输入来选择现有文件。