从本地浏览器应用程序打开默认程序中的本地文件

时间:2017-01-25 20:08:27

标签: php windows google-chrome

那么有没有办法从本地浏览器应用程序打开默认程序中的本地文件?

尝试使用简单的html a href

file:///filepath/filename.exe
由于安全政策,

无法运作,说:

  

不允许加载本地资源

尝试使用php exec

exec('notepad');

似乎它在服务器端打开它,但不在客户端打开。

也尝试了

exec('runas /admin notepad')

  

输入admin:

的密码

我知道有很多重复,我花了一些时间研究,但找不到决定性的答案是否可能?如果是,怎么样?

3 个答案:

答案 0 :(得分:0)

不可能。

PHP是服务器端语言,客户端浏览器不会看到PHP。

此外,甚至无法使用客户端浏览器语言(如javascript)来完成此操作。原因是,这将是一个巨大的安全漏洞,因为它允许您访问的任何网站在您的本地计算机上任意执行/启动应用程序。

答案 1 :(得分:0)

PHP不能用于启动程序客户端。此外,javascript无法执行此操作:How can I run a program or batch file on the client side?因为这会带来安全风险。

但是有一种方法可以做到,但这不能用于打开每种类型的文件。例如,向用户发送地址mailto:example@email.com将提示用户打开电子邮件的默认程序。如果你的程序支持这个,那么你可以这样打开它。这在您的用例中可能无法实现,但如果您可以在其计算机上安装某些内容,则可以制定自己的协议:https://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx

答案 2 :(得分:-2)

Hooray,它有效!

Thanks to this guy.

使用带有3行代码的php运行任何外部GUI程序是可能的:

shell_exec('SCHTASKS /F /Create /TN _notepad /TR "notepad.exe" /SC DAILY /RU INTERACTIVE');
shell_exec('SCHTASKS /RUN /TN "_notepad"');
shell_exec('SCHTASKS /DELETE /TN "_notepad" /F');

基本上,您正在安排任务,然后运行,然后将其删除。