这已经被问了很多次:我需要通过网页获取完整的文件路径。用例是与浏览器在同一台机器上运行的应用程序(即应用程序启动本地HTTP服务器并启动浏览器。)文件路径当然是有效的,现在对于客户端/服务器都是相同的。用户选择文件然后服务器进程对其进行一些计算的用例,输入文件通常很大(读取:大小为几个GiB)。
最简单的方法是使用直接访问路径,但出于安全原因,这是禁用的。我现在正在寻找针对此问题的最少侵入性的解决方法。有问题的目标浏览器是Chrome。我很好,如果用户必须点击“接受”一次安全警告,只要我能确保它不会再出现。
我是否必须编写扩展名,NSPlugin,我可以使用一些特殊的标头魔术将我的页面标记为“本地”,我可以设置一些安全设置吗?客户端做得越少越好,我宁愿选择一些“点击此处以允许访问......”解决方案。我是否可以直接从服务器进程安装扩展程序(在用户单击“接受”之后?)
是否可以使用Java applet / Flash执行此操作?这将是最简单的解决方案,客户可以保证安装Flash(因为它捆绑在Chrome中......)
答案 0 :(得分:1)
您可以为此类任务创建Java applet并对其进行自签名。用户必须允许它运行,但是您将能够访问applet的函数,该函数将通过Javascript返回文件路径字符串。
答案 1 :(得分:0)
显然,客户端系统上的文件io禁止使用JavaScript。如果不是这种情况,那么破解访问您网站的每个网络浏览器都是绝对无足轻重的。
通过浏览器控制Battlefiled 3。为此,EA为前三个浏览器编写了一个浏览器扩展。但这是资源密集型的。如果您只关心chrome,可以使用插件,为此我建议使用NPAPI。
正如MOleYArd所说,Java是一个很好的解决方案,可能比扩展或插件更常见。