我知道默认情况下这是不允许的,你能帮我更改安全设置,以便我可以写入文件。 谢谢
答案 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;删除或只是一个简单的文件输入来选择现有文件。