【问题标题】:reading file contents on client side using web browsers使用 Web 浏览器在客户端读取文件内容
【发布时间】:2016-02-03 18:05:41
【问题描述】:

我的每台客户计算机上都安装了一个软件,该软件定义了新协议,当我的客户从浏览器调用该协议时,该软件将在该计算机上运行并执行一些文件传输操作。

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

现在我在客户端定位完整文件路径时遇到问题,我知道现代浏览器出于安全原因阻止获取完整路径,但是我需要使用 web 读取客户端的文件内容。

有没有办法解决这个问题

【问题讨论】:

  • 你不能这样做 - “但我需要!” - 哦,现在你可以......不,这在网络浏览器中是不可能的。尝试搜索。如果您真的非常需要并且可以控制客户端,请使用 Flash/Silverlight/Java 小程序或桌面应用程序。
  • 好的,有没有办法创建或获取访问内容的虚假路径,以便我可以使用我的软件上传它?

标签: javascript windows html web custom-protocol


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2010-10-19
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    相关资源
    最近更新 更多