2017-01-25 2 views
1

Итак, есть ли способ открыть локальный файл в программе по умолчанию из локального браузера?Открыть локальный файл в программе по умолчанию из локального браузера.

Пробовал с помощью простой HTML A HREF

file:///filepath/filename.exe 

не работает из-за политики безопасности, говорит:

Не разрешается загружать локальный ресурс

Пробовал с использованием php exec

exec('notepad'); 

Похоже, что он открывается на серверной стороне, но не на стороне клиента.

попытался также

exec('runas /admin notepad') 

Говорит

Введите пароль для администратора:

Я знаю, что там много дублей, и я потратил некоторое время на изучение, но не могу найти решающий ответ можно? и если да, то как?

ответ

-2

Ура, это сработало!

Thanks to this guy.

Можно запускать любую внешнюю программу GUI с PHP 3 строк кода:

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'); 

В основном вы планировани задачи, то работает, то удалить его.

+0

Извините, что вы разбили пузырь, но: задание, созданное вами, выполняется на сервере, а не локально. (Это не отличается от 'exec()' в этом отношении - это просто излишне сложный способ запуска команды.) – duskwuff

+0

@duskwuff, пожалуйста, скажите мне другой рабочий способ открыть локальную программу gui (например, excel или vlc) с php ? – user3221449

+0

Вы не можете. Это преднамеренная функция безопасности веб-браузеров. – duskwuff

0

Невозможно.

PHP - это серверный язык, а браузер не просматривает PHP.

Кроме того, этого не может быть сделано с использованием языка браузера на стороне клиента, такого как javascript; причина в том, что это будет огромная уязвимость системы безопасности, поскольку он позволит любому веб-сайту, который вы посещаете, произвольно запускать/запускать приложения на вашей локальной машине.

+0

Большое спасибо за ответ! Я продолжу копать в направлении «html/javascript». – user3221449

+0

Глядя больше на себя, он даже не выглядит так, как если бы это было возможно с помощью js, это было бы огромной уязвимостью безопасности, поскольку это позволило бы любому веб-сайту, который вы посещаете, для произвольного запуска приложений на вашем компьютере. –

+0

Я нашел рабочее решение php. Проверьте, если вы заинтересованы. – user3221449

0

PHP не может быть использован для запуска клиентской части программы. Кроме того, javascript не способен это сделать: How can I run a program or batch file on the client side?, так как это будет угроза безопасности.

Однако есть один способ сделать это, но это невозможно использовать для открытия каждого типа файлов. Например, при отправке пользователя адрес mailto:[email protected] предложит пользователю открыть программу по умолчанию для электронной почты. Если ваша программа поддерживает это, вы можете открыть его таким образом. Это может быть невозможно в вашем прецеденте, но вы можете сделать свой собственный протокол, как это, если вы можете установить что-то на свой компьютер: https://msdn.microsoft.com/en-us/library/aa767914(VS.85).aspx

+0

Спасибо за ответ. Я нашел и разместил рабочее решение. Проверьте, если вы заинтересованы. – user3221449

Смежные вопросы