使用jQuery读/写文件

有没有办法让jQuery从文件中获取信息? 可能吗? 怎么样?

不,JavaScript没有写入文件的权限,因为这至less是一个巨大的安全风险。 如果你想获得/存储服务器端的信息,你当然可以对PHP / ASP / Python /等进行Ajax调用。 脚本,然后可以获取/存储在服务器中的数据。 如果你的意思是在客户端机器上存储数据,那么单独使用JavaScript是不可能的。 我怀疑Flash / Java可能,但我不确定。

如果您只是试图针对特定用户在不可靠的时间段内存储less量信息,我认为您需要cookies。 虽然我不确定你的问题是你想完成什么。

对的,这是可能的。

该技术如下所述

http://jquery.tiddlywiki.org/twFile.html

HTML5和Google Gears都增加了本地存储function,主要是通过embedded式的SQLite API。

这个Javascript函数为通过浏览器运行这个函数的用户提供一个“另存为”对话框。 用户按下确定,文件保存在服务器端。

这用于与所有的浏览器,但现在只适用于IE。 下面的代码是一个安全风险,如果javascript可以在服务器端保存数据,跨站脚本黑客可以拥有你的服务器。 Firefox和Chrome已经堵塞了漏洞,但IE还没有这样做。

// content is the data (a string) you'll write to file. // filename is a string filename to write to on server side. // This function uses iFrame as a buffer, it fills it up with your content // and prompts the user to save it out. function save_content_to_file(content, filename){ var dlg = false; with(document){ ir=createElement('iframe'); ir.id='ifr'; ir.location='about.blank'; ir.style.display='none'; body.appendChild(ir); with(getElementById('ifr').contentWindow.document){ open("text/plain", "replace"); charset = "utf-8"; write(content); close(); document.charset = "utf-8"; dlg = execCommand('SaveAs', false, filename); } body.removeChild(ir); } return dlg; } 

像这样调用函数:

 msg = "I am the president of tautology club."; save_content_to_file(msg, "C:\\test"); 

您将需要通过Web编程语言(如PHP或ASP.net)来处理您的文件访问。

要设置这个,你会:

  • 创build一个处理文件读写的脚本。 这应该对浏览器可见。

  • 将jQuery ajax请求发送到写入数据或读取数据的脚本。 您需要通过请求parameter passing所有读/写信息。 您可以在jQuery ajax文档中了解更多。

确保您清理您正在存储的任何数据,因为这可能会带来安全风险。 但是,这实际上只是标准的平面文件数据存储,并不一定非同寻常。

Paolo指出,没有办法通过jQuery或任何其他types的javascript直接读/写文件。

cookies是你最好的select。 寻找jQuery的cookie插件。

Cookie是针对这种情况而devise的 – 您希望在客户端保留有关此客户端的一些信息。 请注意,cookie会在每个Web请求中来回传递,因此您无法在其中存储大量数据。 但只是一个简单的问题答案应该没问题。

如果你想在页面内部做一些服务器端的处理,把文本值放到一个隐藏的字段中(使用PHP)可能是一个可行的想法。 然后你可以使用jQuery来处理隐藏的字段值。

无论漂浮你的船:)