fs可以从部署 node.js应用程序写入用户的 local 文件系统(例如,写入“下载”)吗?
当我在本地运行文件(localhost :)时,我能够做到这一点,但是当我在Heroku上部署代码时,相同的代码将无法创建相同的文件。有可能吗?如果是这样,那么我将继续研究目录/路径问题。如果没有,我将不再用力撞墙!
谢谢。
答案 0 :(得分:1)
fs可以从已部署的node.js应用程序写入用户的本地文件系统(例如,写入“下载”)吗?
不,这根本不可能。服务器本身无法直接访问用户的本地文件系统(位于另一台计算机上,通常位于一个或多个防火墙之后)。另外,出于安全考虑,浏览器不允许服务器通过浏览器直接写入用户的本地文件系统。
想象一下,如果您访问的某个随机网站可以写入您自己的本地文件系统。如果不受信任的服务器具有访问本地文件系统的能力,则可能会发生各种破坏。
仅供参考,用户可以通过多种方式来规避这些保护,但是这些都涉及最终用户在其计算机上本地安装可以做到这一点的软件(例如浏览器附加程序或其他与之连接的程序)服务器并代表服务器执行本地文件系统操作)。有时,用户会被诱骗这样做(例如勒索软件,病毒),有时,有合法,安全的应用程序会这样做。但是,它要求最终用户在其计算机上安装其他代码才能启用该类型的访问。
仅供参考,服务器可以通过浏览器“提供”文件下载,以进入用户本地计算机上的用户下载文件夹(或最终用户选择的任何文件夹),但这仍然需要最终用户确认,并且不能无需最终用户参与即可在浏览器中完成。如果服务器向浏览器请求发送正确的响应类型,则浏览器将提示用户进行下载。