0

我试图弄清楚 PHP 中是否有一种方法可以在用户桌面上打开文件(即,用户从 PHP 页面上显示的文件列表中选择一个文件,然后使用适当的程序打开文件用户的桌面,就好像用户在 GUI 中双击它一样。)搜索了一段时间后,我发现这可以通过使用 PHP 中的 COM 对象的一些看起来很复杂的代码来实现,但这仅适用于 Windows 用户我试图让这个平台不可知。

有没有其他人尝试过这样做并成功了?

4

2 回答 2

1

如果没有冗长的“用户同意”过程,或者用户自愿(理想情况下,有意识地)安装某些软件组件,您就无法在用户的机器上执行应用程序。

我认为最干净的方法可能是使用(签名!)Java 小程序。

否则,您可以尝试让用户使用合适的协议处理程序注册特定协议,您可以下载并安装在用户系统上以拦截诸如exec://format%20C%2C;-)之类的链接

不幸的是, file:// 协议(可以理解)受到限制。例如,在 Firefox 中,如果您在地址栏中手动插入“C:\”并导航,它会(在某种程度上)起作用。如果您单击这些链接,它们将(在某种程度上)起作用。在不同的安全上下文(例如 Internet)中复制文档中的相同链接,你瞧,它不起作用。

另一种可能性是使用 REXECd(在大多数平台上可用)或某些克隆对所有 Intranet 客户端进行后门。然后当用户单击时,您将命令从 PHP 发送到用户的工作站。由于现在的 PC 是多用户平台,因此您需要一些快速的工作来确定如何执行此操作。例如,在 Linux 机器上,您必须运行具有适当所有权和DISPLAY价值的 X 应用程序。

您还可以“识别”用户的平台并让用户下载适当的批处理文件,要么.sh要么.bat要么.cmd;但他们需要点击下载,点击批准,点击打开可执行文件。

于 2012-10-16T22:36:23.120 回答
0

您不能在客户端上运行文件。这是一个很大的安全漏洞,浏览器不允许你这样做。

在windows上你可以使用ActiveX,但是客户端必须允许安装ActiveX组件,你会遇到很多问题。

于 2012-10-16T22:16:56.387 回答