使用JavaScript将文件保存到特定目录是否可行?

3

使用Filesaver.js插件下载文本文件。默认情况下,文件下载到“我的下载文件夹”中。需要将下载的文件存储在特定的文件夹中。


2
这在 JavaScript 中是不可能的。但是你可以在浏览器中更改下载目录。 - ArunKumar M N
1
这个设置由浏览器的用户控制。你没有权利在用户的设备上随意保存东西。设备属于用户,他们可以选择下载保存的位置。事实上,JavaScript甚至不知道文件系统结构是什么(也不应该知道,那将是一个巨大的安全漏洞)。 - ADyson
1
@yash vadhvani 你是什么意思?据我所知,JavaScript无法选择将文件保存到哪个文件夹中...除非你能提供一个例子? - ADyson
1
@ADyson,非常抱歉,我想在我的回答中添加通过浏览器下载并设置下载位置的方法。 - yash vadhvani
1
@ADyson 是的,先生,那是完全正确的。 - yash vadhvani
显示剩余2条评论
2个回答

8
不可能让运行在您的浏览器中的JS更改您的文件系统,这是幸运的事情!想象一下,如果JS能够更改您的文件系统,那么安全漏洞将非常大,每个人都会(而且绝对应该)停止使用互联网。假设我建立了一个网站,onload触发保存文件的代码,文件被保存到您的文件系统中的目录(假设您使用Linux)。"文件正在做什么?" - 如果您知道它已经被保存,您可能会问(:smiling_imp:)。没有什么特别的 - 只是寻找一些私人数据,完成后从/usr/bin/proc/sys和可能的/etc中删除随机文件 - 只是为了看看会发生什么。

现在你看到问题了吗?在您可以对此做出反应之前,在您的浏览器中运行的代码不能具有保存任何内容到您的文件系统中的这种权力。唯一能够向用户“提供”文件的方法是使用像Filesaver.js这样的模块,实际上,它根本没有访问用户文件系统的权限。它只是直接向文件发出GET请求,浏览器下载文件(因为这是浏览器的工作方式)。所以,您可以更改下载文件的位置的唯一方法是更改浏览器设置。我知道的没有其他方法。


3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接