我知道默认情况下这是不允许的,你能帮助我如何更改安全设置,以便我可以写入文件。 谢谢
最佳答案
绝对没有办法用浏览器写入文件。 但像 Chrome 这样的现代浏览器允许您即时创建文件
在此示例中,我向文档添加了一个文本区域。
这有一个 onchange 事件监听器。(所以写一些东西并点击外面模糊它)
onchange 它读取文本区域的值并将其转换为 base64
使用btoa()
可以轻松完成
数据被添加到新创建的 anchor 的 href 中,该 anchor 以 (text/plain) 为前缀作为 mimetype 和 data: 告诉浏览器它是数据字符串而不是链接。
Chrome 在 anchor 上还有一个名为 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缓存中(临时或持久)。
文件系统可以将大文件存储为 blob,并且使用的资源很少。
然后还有用于小文件的 localstorage/indexedDB/websql。
在最后一个解决方案中,您需要将数据保存为 base64,否则您无法存储您的信息。
在所有解决方案中,您的浏览器中都有文件,您需要一个现代浏览器......但您需要下载文件。
如果您想在现有文件上写入数据,您可以使用 FileReadr()
和 FileWriter.append()
并拖放或只是简单的文件输入选择现有文件。
关于javascript - 如何使用javascript将数据写入文件?I,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18300950/