2011-11-07 56 views
2

这已经被问了很多次了:我需要通过网页获取完整的文件路径。用例是与浏览器在同一台机器上运行的应用程序(即应用程序启动本地HTTP服务器并启动浏览器)。文件路径当然有效,现在对于客户端/服务器来说都是相同的。使用情况下,用户选择一个文件,然后服务器进程对其进行一些计算,并且输入文件通常很大(读取:几个GiB大小)。使用Javascript获取完整文件路径的最复杂方式

最简单的事情是直接访问路径使用,但出于安全原因,这是禁用的。我现在正在寻找解决这个问题的最少侵入性解决方法。有问题的目标浏览器是Chrome。如果用户在某个安全警告中必须单击“接受”一次,只要我可以确保它不会再次出现,那么我很好。

我必须编写一个扩展NSPlugin吗?我可以使用一些特殊的标题魔术来将我的页面标记为“本地”,是否有一些我可以设置的安全设置?客户做得越好,我更希望有一些“点击此处以允许访问......”解决方案高于一切。我可以直接从服务器进程安装一个扩展程序(在用户点击接受后)吗?

是否可以使用Java applet/Flash来执行此操作?这将是最简单的解决方案,并且客户端可以保证安装Flash(因为它已被捆绑在Chrome中...)

+0

IE允许激活-x ... 但是对于铬我不知道。 –

+1

我将这种功能构建到服务器端。换句话说,为客户提供一种通过服务器操作“浏览”其本地文件系统的方法。 – namuol

+0

是的,开始看起来比拥有插件/扩展/ applet无论客户端更容易。 – Anteru

回答

1

您可以为此类任务创建Java小程序并对其进行自签名。用户必须允许它运行,但是你将能够访问applet的函数,该函数将通过Javascript返回文件路径字符串。

0

很明显,客户端系统上的文件io被JavaScript禁止。如果情况并非如此,那么攻击访问您的网站的每个网络浏览器都是绝对微不足道的。

Battlefiled 3通过浏览器进行控制。为此,EA为前三名浏览器编写了浏览器扩展。但这是资源密集型的。如果你只关心Chrome,你可以使用插件,为此我建议使用NPAPI

正如MOleYArd所说,Java是一个很好的解决方案,可能比扩展或插件更常见。

相关问题