在服务器上只使用javascript读取/写入txt文件,而不涉及任何服务器端语言



我正在开发一个简单的HTML/Javascript应用程序。此应用程序在文本区域向用户显示随机文本消息。我有15-20条这样的短信,最多500个字符。我不想将这些消息保存在数据库中。我有两种情况-

  1. 我为每条消息都有多个.txt文件,然后使用javascript仅用于读取随机的txt文件并显示文件的内容在文本区域中
  2. 用户在单独的文本区域中输入消息,然后通过按下"保存"按钮,该消息的新txt文件应该是创建

我一直在搜索如何用javascript读/写文件,我发现了这两篇文章-是否可以只使用JavaScript将数据写入文件?以及如何使用JavaScript读取和写入文件
但这些帖子是关于在客户端读取文件或从文件输入类型读取文件的

https://stackoverflow.com/a/21012689/1930283

这个建议是关于使用一些服务器端语言
是否有任何方法可以仅使用Javascript读取和写入txt文件

仅当JavaScript是您的服务器端语言(例如Node.JS)时。

默认情况下,服务器不允许您向它们写入文件。那将是一个可怕的安全问题。

如果你不想从客户端代码对服务器上的文件进行任何写访问,你很容易很快就被黑客入侵。但在阅读方面,您可以将txt文件托管在公共html目录中,并使用jquery从javascript执行异步获取请求,如下所示:

$.get("http://../file.txt", function(data) {
console.log("Here's the file data: "+data);
});

EDIT:js无法单独操作服务器上的文件的原因是浏览器只能使用URL和PORT向服务器发出请求。当服务器收到请求时,会发生什么,这完全取决于服务器端的代码或托管文件的程序,如apache。

如果您有FTP或SSH等服务器端服务在运行,那么是的,是可能的,但任何人也可以从您的JavaScript文件中读取您的用户名和密码,并通过您使用的服务登录到您的服务器
因此,永远不要这样做。

如果没有服务器端服务在运行,并且您没有自己的服务器端脚本,那么不,这是不可能的。就像我不可能在你的电脑上创建文件一样。

我创建了一个到服务器的网络链接,并使用FileSaver.js通过该网络链接手动将任何数据保存到服务器上的任何文件中。这既简单又节省,但需要手动干预。

最新更新