如何使用兼容javascript的跨浏览器创建,保存txt文件

时间:2011-09-12 18:20:07

标签: c# javascript asp.net activex

您是否知道在客户端使用javacript创建和保存文件的任何跨浏览器方法?!

考虑:

  1. 无法将其保存在服务器中,因为该文件将从a中读取 财务打印机。
  2. 服务器无法访问客户端,这很明显,因为我们是 谈论网络中的Web应用程序。所以服务器不能 访问客户端文件夹。
  3. new ActiveXObject(“Scripting.FileSystemObject”);仅适用于IE和 即使在IE中也不适用于所有版本。
  4. 我们正在讨论在财务打印机上打印,所以我不能问 超市的收银员下载文本文件并保存 在财务打印机可以读取它的文件夹中。
  5. 如果不是javascript,我还可以在asp .net 4.0 c#网页中使用其他内容 应用

4 个答案:

答案 0 :(得分:3)

基本上,你说过,“我们正在谈论一个网络应用程序。”您是否知道任何将文件保存到硬盘驱动器(除了cookie)的Web应用程序,而不首先向您显示下载提示?

话虽如此,浏览器已经开始提供超越cookie的persistence API。 (例如,参见this article。)但是这样的解决方案不符合您的跨浏览器要求。

答案 1 :(得分:0)

你可以通过客户端Web服务做到这一点只是在Web服务中创建一个函数来在你的硬盘驱动器中创建一个文本文件,然后当你这样做时将Web服务转换为客户端服务.Net框架使客户端java脚本然后你将能够在客户端使用Java脚本调用服务器端功能,之后你的文件将不会在服务器中发布它将保存在你的硬盘驱动器中确定

答案 2 :(得分:0)

您唯一的选择是使用来自HTML5的持久性API或创建一个浏览器插件(IE上的activex控件,其他人的NPAPI插件),可以为您执行文件访问。您可以使用FireBreath来执行此操作,如果您了解C ++,则会相对简单。

那就是说,这是一个非常危险的想法;很难阻止人们在其他页面中使用你的插件,所以你的插件必须足够智能,以防止被想要读取(甚至写入)任意数据到你的硬盘驱动器的恶意网站滥用。

毕竟,浏览器本身不支持这一点的原因。我会看一下HTML5。

答案 3 :(得分:0)

我们推出了一个简单的Windows服务nodejs app,可以安装在本地机器上。 当Web应用程序需要创建文件时,它只使用localhost向此应用程序发送API调用,并为其编写文件。 干杯。