我们可以在网络浏览器中使用JavaScript引擎来处理本地文件吗?
我有许多用户拥有数兆字节的文件,需要先对其进行处理,然后才能上载它们。我正在尝试找到一种方法,而不必在其计算机上安装任何可执行软件。
如果每台机器都附带Python,那将很容易。我可以让Python脚本做所有事情。我能想到的唯一脚本语言是每台机器上的JavaScript。但是,我知道存在一些安全限制,这些限制会阻止从Web浏览器读取和写入本地文件。
有什么方法可以将这种极为普遍的脚本语言用于通用计算任务?
编辑:为了阐明要求,这需要是一个跨平台,跨浏览器的解决方案。我相信HTA是仅Internet Explorer的技术(或者Firefox的等效功能已损坏)。
解决方案
回答
我为工作而维护和开发的应用程序是HTML应用程序或者HTA,它与SQL Server 2005后端链接。这允许"避免"各种安全限制。应用程序中的所有客户端组件都使用javascript完成,包括将文件写入本地映射的网络驱动器,以及以AJAXy方式将数据加载到屏幕/页面中。
也许HTA可能对情况有所帮助。
回答
对于使用javascript访问本地文件的示例,我们可以尝试查看TiddlyWiki的源代码,特别是saveFile,mozillaSaveFile和ieSaveFile函数。只需单击下载链接,打开它发送给html文件,然后搜索这些功能。
当然,tiddlywiki应该用作本地文件,而不是通过Web提供,因此其使用的方法可能仅在本地工作。
回答
Google Gears可以在这里工作吗?是的,用户必须安装一些东西,但是我认为这种体验是毫无摩擦的。并且一旦安装,就不用担心了。
回答
为什么不使用Flash上传器?
http://swfupload.org/
回答
Adobe Flex 4允许我们打开和处理本地计算机上的文件:
http://livedocs.adobe.com/flex/3/langref/flash/net/FileReference.html#load()
它不完全是JavaScript,但希望能有所帮助。