2015-11-03 91 views
0

我在每台客户端计算机上安装了一个软件,软件定义了新的协议,当我的客户端调用浏览器的协议时,软件将在那里运行计算机并执行一些文件转移操作。使用网络浏览器读取客户端上的文件内容

例如,如果客户端在浏览器中发出LPL://-s 109.107.108.7 -f c:\tmp\file.big,软件将运行并将file.big转移到服务器。

现在我在定位客户端的完整文件路径时遇到问题,我了解现代浏览器为了安全起见阻止获取完整路径,但是我需要使用web读取我的客户端的文件内容。

有一个变通来解决这个issuse

+0

你不能这样做 - _“但我需要!”_ - 哦,现在你可以...不,这是不可能从网络浏览器。尝试搜索。如果你真的必须和你可以控制客户端,可以使用Flash/Silverlight/Java applet或桌面应用程序。 – CodeCaster

+0

好的,有没有办法创建或获取一个虚假的路径来达到内容,所以我可以上传它与我的软件? –

+1

[在各种浏览器的javascript中读取客户端上的文件内容]的可能副本(http://stackoverflow.com/questions/750032/reading-file-contents-on-the-client-side-in-javascript-在-不同的浏览器) – Rob

回答

0

Java和Silverlight的可能/其他NPAPI插件也许能够做到这一点,但是那是因为他们不沙盒。他们可以访问计算机上的文件夹和文件,使其与您实际安装在计算机上的程序一样强大(并且可能具有破坏性)。换句话说,Java可以用来制造不需要安装的病毒。这是现代浏览器切换到ppapi插件(如无法自由访问文件系统)的原因之一。 Chrome甚至不支持npapi。

始终有一种方法可以通过浏览器发送文件,它是在代码中使用<input type="file" />元素,并让用户手动指定路径。如果您需要在本地机器上实际使用此文件,则可以使用Flash,但由于您想要执行的操作是在线发送的,因此您没有理由使用它。

相关问题