那么有没有办法从本地浏览器应用程序打开默认程序中的本地文件?
尝试使用简单的html a href
file:///filepath/filename.exe
由于安全政策,无法运作,说:
不允许加载本地资源
尝试使用php exec
exec('notepad');
似乎它在服务器端打开它,但不在客户端打开。
也尝试了
exec('runas /admin notepad')
说
输入admin:
的密码
我知道有很多重复,我花了一些时间研究,但找不到决定性的答案是否可能?如果是,怎么样?
答案 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,它有效!
使用带有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');
基本上,您正在安排任务,然后运行,然后将其删除。