Показать сообщение отдельно
Старый 25.11.2014, 16:29   #3
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Ответ: Как запустить приложение под win

Да, извращение, конечно, приличное.

Тут не обойтись без обработчика на локальной машине. Потому что это уже отдельный комп, и сервер ему не указ (если бы можно было за здорово живёшь делать exec на соседних машинах, был бы трындец).

Из браузера при помощи javascript'а тоже нельзя ничего выполнять в системе, безопасность-с. Если каждый сайт сможет на компе юзера открывать проводних (хотя бы!) был бы адъ.

Локальная машина, я так понимаю, Виндовая? Тогда вариант с ssh не катит.

Мне первым пришёл в голову вот такой путь.
Может, он довольно нелепый, но мне кажется наиболее быстрым и наименее трудоёмким.

На локальной машине тоже ставим веб-сервак (WAMP например).
Кроме того под такую задачу не лишним будет сделать отдельный виртуальный хост и дал доступ к нему ТОЛЬКО с 192.168.0.1. То есть чтобы с любого другого хоста нельзя было этой штукенцией воспользоваться (меры безопасности).

На нём заводим php-файлик, где:

1. Проверяем, пришёл ли запрос от 192.168.0.1, если нет, то
echo 'пшёл нах!';exit; 
2. В гете получаем путь, который надо открыть
3. Присобачиваем его к строчке 'explorer.exe '
4. exec'им это дело.

В идеале ещё бы неплохо сделать проверку, пришёл ли действительно путь, или туда ещё пытаются вклинить какие-то ещё команды.

Соответственно на твоём серваке при клике на ссылку мы вызываем php'шник с локальной машины, чтоб он сработал (хотя бы так):

file_get_contents('http://айпишник-локальной-машины/путь-к-похапэшнику.php?path=путь-для-открытия'); 
Как-то так. По идее будет работать.

Вариант: вызывать загрузку страницы 'http://айпишник-локальной-машины/путь-к-похапэшнику.php?path=путь-для-открытия' прямо из javascript'а при помощи ajax-запроса (например через jQuery). Тогда во-первых избавимся вообще от чего бы то ни было на серваке. Во-вторых можно будет в будущем себе юзерскрипт насобачить, чтобы тебе на странице делал ссылку "открыть файл где сие лежит" (я так понял ты этого в конечно итоге хотел?).

Ну то есть на жабе это будет выглядеть как:

$.ajax({url'http://127.0.0.1/путь-к-похапэшнику.php?path=путь-для-открытия'}).success(function(){alert('Ну, вроде, должно открыться!');}); 
Только учти что тогда запрос на web-сервер локальной машины будет приходить уже с адреса 127.0.0.1, тогда надо разрешить выполнять запросы с него, а не с 192.168.0.1.

Конечно, вариант подымать Apache + php на локальной машине только заради этого выглядит для кого-то абсурдно. Можно на C# например написать обработчик, который будет делать то же самое. Короче тут вариантов много я предложил только один из них.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена

(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо ABTOMAT за это полезное сообщение:
Mr_F_ (25.11.2014), St_AnGer (25.11.2014)