cqwcns 发表于 2022-6-29 13:14

JS写入本地文件的问题

本帖最后由 cqwcns 于 2022-6-29 13:16 编辑

想写一个本地的web应用(JS),需要涉及到用户输入数据保存。


JS在读取本地文件,无论是CSV、JSON等文件,都非常简单。


但现在我希望将用户输入数据保存到本地JSON或CSV文件,网上搜了很久,网上的方法基本都是另存为写入文件的。


而我希望直接写入到指定文件,而非弹窗另存为。


各位大佬有什么好方法,请指教,感谢。


writeBtn.onclick = function () {
// 字符内容转变成blob地址
const content = JSON.stringify([{ name: '张三' }]);
const blob = new Blob(, { type: "text/plain;charset=utf-8" });

// 创建一个 a 标签,添加属性
let eleLink = document.createElement('a');
eleLink.download = "1.json";
eleLink.style.display = 'none';
eleLink.href = URL.createObjectURL(blob);

// 触发点击,然后移除
document.body.appendChild(eleLink);
eleLink.click();
document.body.removeChild(eleLink);
};

永恒陌 发表于 2022-6-29 13:20

要不你自己思考一下,静默读写文件 和 病毒行为的区别。

cwl 发表于 2022-6-29 13:37

楼上说的很有道理,一般开发文件都是后端按用户管理,前端管理这个是没有的。或者试试套个壳,不走浏览器

CDCBB 发表于 2022-6-29 13:47

除了漏洞或bug,目前浏览器应该都不支持写文件到本地硬盘的权限吧。

无语的小紫英 发表于 2022-6-29 13:51

要不你试试浏览器的localStorage或者IndexedDB存储。{:301_998:}

18382747915 发表于 2022-6-29 15:01

不可能哈,浏览器安全策略不允许,要是可以不经过用户确认就可以写文件,那不是病毒文件满天飞。

wyp123 发表于 2022-6-29 15:58

js是直接运行在浏览器里面的,这如果可以让你随便乱写,那这个浏览器谁敢用呢

WXJYXLWMH 发表于 2022-6-29 16:14

理论上可以实现
思路:
1.本地的web应用(JS),用户输入数据保存(先同时保存到你自己的服务端IP地址) 例如 https://www.123456.com/name1.txt 至 https://www.123456.com/name10.txt
可以是一个页面 也可以是多个页面 一个用户数据保存到一个页面 或多个用户数据保存到一个页面
2.调用JS解析读取 https://www.123456.com/name1.txt 页面 自动下载页面所有文字并写入json
张三 1.json 李四.2json 赵钱孙李 多个用户数据保存到一个页面
页: [1]
查看完整版本: JS写入本地文件的问题