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

标签 javascript file security

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

最佳答案

绝对没有办法用浏览器写入文件。 但像 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/

相关文章:

python - 如何从 FileField 获取 (txt) 文件内容?

node.js - 使用 Express 处理表单的最佳实践

performance - 在 Apache 中使用 .htaccess 文件

javascript - 浏览器滚动与页面滚动

javascript - 突出显示元素中的子字符串

java - 从文本文件的一行中删除单词

php - Web 服务身份验证 - PHP

javascript - Laravel:没有通过ajax发送数据

javascript - 当用户错误填写表单/遗漏某些内容时,如何通过 ruby​​ on Rails 上的 JS 显示错误消息?

android - Android 设备上的屏幕截图文件保存时间较长