motorway Опубликовано 27 февраля, 2007 Жалоба Поделиться Опубликовано 27 февраля, 2007 На веб-странице делаю ссылку на файл exe с параметрами *.расширение 1 *.расширение 2 - имена входных и выходных файлов. Это работает в командной строке в Volkov Commander, но здесь не проходит. Как быть? Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 27 февраля, 2007 Жалоба Поделиться Опубликовано 27 февраля, 2007 Вообщем этого сделать нельзя. Когда вы даете ссылку на .exe, пользвател должен сначало скачать а после этого запустить, так что параметри от самой странице нельзя установит. Напишите пользвателям инструкцию как пользувать программу Еще если вам нужно установить некоторые параметри в .exe перед тем как польватель скачал его, нужно его пре-пачить, т.е. чтоб ссылка не была на .exe а на PHP скрипт, который откроеть файл, сделаеть изменения и отправить его к браузеру. Но это только если вы знаете что вам нужно именно это и если вы автор .exe файла, т.е. у вас есть изходний код, и только если возможно ссылки на .exe отправить на php / perl скриптов Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 27 февраля, 2007 Автор Жалоба Поделиться Опубликовано 27 февраля, 2007 А ты не можешь написать: этот скрипт PHP, какой он должен быть? Что он делает или как называется? Спасибо ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
kvazimoda Опубликовано 27 февраля, 2007 Жалоба Поделиться Опубликовано 27 февраля, 2007 Что он делает ты уже сам будешь определять. Факт в том, что у пользователя на компе ты ничего с файлом сделать не сможешь, максимум - ты можешь закачать его пользователю, но все равно у пользователя выскочит сообщение с вопросом скачивать этот файл или нет. А то что тебе предложил Darhazer нужно в том случае, если ты, для примера, хранишь файл основная часть которого для всех одинаковая, но, например, чтобы зарегистрировать программу, надо этот файл подправить определенным образом, вот тогда ты его и подправляешь своим скриптом. Да, этот скрипт позволяет и переименовывать файлы тоже, но пользователь все равно получит файл с конечным разширением и согласие он будет давать на файл с конечным разширением. Этот способ подходит только в том случае, если у тебя на сервере нельзя хронить файлы с таким разрешением. P.S. На счет написания готового скрипта ко мне не обращайся, я этим не занимался никогда и скорее всего не скоро руки дойдут разобраться что к чему... Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 27 февраля, 2007 Автор Жалоба Поделиться Опубликовано 27 февраля, 2007 Я имел в виду, чтобы некоторый процесс запускал файл на сервере, так сказать, например, через php, а не у клиента ;) и клиент видел только результаты в виде файла конечного - он-то и пишется в командной строке Пользователь ничего не должен сам писать. М.б. только имена этих файлов, а все должно запускаться без его ведома. Выходной файл генерируется на сервере . И появляется содержимое этого файла на странице. Прога работает через сервер. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 27 февраля, 2007 Жалоба Поделиться Опубликовано 27 февраля, 2007 (изменено) Я имел в виду, чтобы некоторый процесс запускал файл на сервере, так сказать, например, через php, а не у клиента ;) и клиент видел только результаты в виде файла конечного - он-то и пишется в командной строке Пользователь ничего не должен сам писать. М.б. только имена этих файлов, а все должно запускаться без его ведома. Выходной файл генерируется на сервере . И появляется содержимое этого файла на странице. Прога работает через сервер. Если на сервере, то тогда тебе нужна ссылка не на самого файла, а на скрипт, котоый запустить файл и покажеть потом резултать. К стате, хостери обично запрещяють юзать подобних скриптов В PHP можно пользувать: passthru( "some.exe *.расширение 1 *.расширение 2 - имена входных и выходных файлов");Или $result = system( "some.exe *.расширение 1 *.расширение 2 - имена входных и выходных файлов"); echo $result; Изменено 27 февраля, 2007 пользователем Darhazer Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 27 февраля, 2007 Автор Жалоба Поделиться Опубликовано 27 февраля, 2007 Если на сервере, то тогда тебе нужна ссылка не на самого файла, а на скрипт, котоый запустить файл и покажеть потом резултать. К стате, хостери обично запрещяють юзать подобних скриптов В PHP можно пользувать: я в PHP чайник, ты не подскажешь, как это обычно делается - там обычно надо создавать файл, потом стирать и т.п. В хтмл все просто, а здесь есть какой-то исходник для любого файла пхп, куда можно вставить этот код, и все заработает? Как все делается по шагам? Можно ли просто аплоудить файл пхп с этим кодом? Спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 27 февраля, 2007 Жалоба Поделиться Опубликовано 27 февраля, 2007 Привет Во первых, чтоб запустил .exe тебе нужен сервер с Windows и чтоб разрешено было запускать программ Во вторих, скрипт точно такой же: <?phppassthru( "команда и ее параметри");?> Если работаеш под *nix, тебе нужна программа, которая работаеть под этой ОС, надо ей дат +x (chmod 777 например) и скрипт опять такой же: <?phppassthru( "команда и ее параметри");?> Попробуй залить сам PHP скрипт и открить его в браузере (набрать адрес скрипта) и увидеш работаеть ли он или нет А потом сделаеш и необходимие изменения в HTML Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 27 февраля, 2007 Автор Жалоба Поделиться Опубликовано 27 февраля, 2007 Что я точно знаю, так это то, что у меня есть сайт, на котором можно загружать файлы через ftp. Скорее всего, там не видноусовский сервер, но как это узнать? Если он не винд-й, то что надо делать? Мне нужно очень четко понять (если Юникс сервер): если я 1) загружу на мой сайт файл .exe, файл входной как первый параметр, и 2) после запуска скрипта на php - будет ли исполняться этот файл (даже если необходимо еще что-то сделать)? И сохранять результат в файл второго параметра? Что значит программа, раб. под Юникс? Моя, которую я хочу залить или другая? Надеюсь, ты не пропустил, что моя прога работает через командную строку, а не просто. Как это будет реализовываться через php и инет? Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 27 февраля, 2007 Жалоба Поделиться Опубликовано 27 февраля, 2007 Привет Какая ОС на сервере можно узнать если сделаеш php файл: <?phpphpinfo();?> Загружаеш на сервер и откриваеш в браузер Под Unix / Linux .exe просто не будеть работать. Оно работаеть только под Windows А что делаеть это .exe? Возможно можно сделать операцию и с софтом, который есть на сервере? Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 27 февраля, 2007 Автор Жалоба Поделиться Опубликовано 27 февраля, 2007 Программа вычислительная, считает уравнения всякие. Но если там unix, то разве нельзя придумать к-н. фичу, чтобы запустить в обход? А где можно взять сервер с виндами? или могут ли дать эти хостеры сервер с виндами? они могут изменить тип ОС? если прога запускается только из командной строки vc (dos), то это будет влиять на ее запускабельность через инет? Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 28 февраля, 2007 Автор Жалоба Поделиться Опубликовано 28 февраля, 2007 (изменено) делаю скрипт запуска .bat через php. на сервере стоит Вин (вроде бы). А если бы там был Юникс, батник запустился бы? почему passthru не запускает exe? сам батник вроде бы запускается, по крайней мере создает файлы, копирует и т.д. А вот exe файл - нет. И сам php с passthru "зависает" - действия он выполняет нужные, но страница до конца не открывается. Изменено 2 марта, 2007 пользователем Darhazer Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 1 марта, 2007 Жалоба Поделиться Опубликовано 1 марта, 2007 Вообщем это вопрос по операционних систем bat-ник запустился бы если это валидний bash или sh скрипт, так как bat - это команди для облочки Windows, а у Unix стоить другая облочка Насчет passthru - пробували вы запустить его не через passthru а через system() passthru перенаправляеть весь output программы к браузеру и возможно если программа показиваеть чтото другое кроме текста в конзоли, чтоб не работала Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 1 марта, 2007 Автор Жалоба Поделиться Опубликовано 1 марта, 2007 Кто из гуру поможет разобраться в необъяснимой ошибке: Все говорится о файлах, лежащих в корневой директории сервера под Windows. 1) файл a.php <?php passthru ("d:\hst\имя директории\http\a.bat"); ?> 2) файл a.bat, который д.быть запущен из php: d:\hst\имя директории\http\pkunzip.exe d:\hst\имя директории\http\1.zip Должен происходить запуск батника, к-рый запускает распаковщик файлов pkunzip с параметром командной строки 1.zip - раскрывает архив 1.zip. Должен извлечься файл 1.txt 3) захожу на страницу a.php. Потом проверяю, извлекся ли файл. Нет!!!! Почему? В чем ошибка? Как правильно сделать? Перепробовал и system(), и exec() и другие способы. Дубово стоит на одном месте. Подскажите, я уже валюсь от усталости в этом разбираться. p.s. То есть в корневой папке моего сайта. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость avb_constructor Опубликовано 2 марта, 2007 Жалоба Поделиться Опубликовано 2 марта, 2007 А зачем так сложно? Батник можно и без php запускать. Он ведь у тебя должен распаковать zip-архив с помощью pkunzip'a? Ну, тогда просто этот батник со строчкой , которую ты написал, запускаешь и всё. Может быть, проблема еще и в том, что ты не так записал параметр pkunzip'a для распаковки архива. Проверь, так ли ты всё пишешь? А самый главный нюанс в том, что если ты работаешь в ХРюше, то твои действия - совершенно бессмысленные, т.к. во-первых, она больше не поддерживает многие мсдосовские команды (по крайней мере, большинство прог (если не все), которые работали в MS-DOS, не работают в ХРюше), а во-вторых, у ХРюши есть встроенное средство для распаковки zip-архивов и называется zip-папкой. Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 2 марта, 2007 Жалоба Поделиться Опубликовано 2 марта, 2007 Покажите содержимуе phperrors.log или настройте PHP показивать всех ошибок на екране Также допишите после passthru() echo "OK"; чтоб увидеть доходить ли скрипт вообще до конца Ссылка на комментарий Поделиться на другие сайты Поделиться
motorway Опубликовано 3 марта, 2007 Автор Жалоба Поделиться Опубликовано 3 марта, 2007 у меня XP, но ведь я запускал из батника, даже команды выполнялись некоторые (например, создание директории) - этого бы не было, если написать просто в XP в проводнике, к примеру. Значит, командная строка запускалась сама, как и должно быть при нажатии на батник. Дело только в том, что экзешники при этом не запускались. Значит, проблема была в них. Как оказалось, это было из-за того, что pkunzip.exe - старый досовский файл, а уже более новый unzip.exe - он запустился прекрасно, и получилось то, что нужно. Но это было странно, т.к. на моем компе запустился даже pkunzip. М.б. на сервере было что-то другое, или специальные параметры доса, или его там нет :) Вывод: запускаться должны приложения win32, работающие с командной строкой (если таковые имеются). Следующий шаг - запустить такое приложение, которое я хотел. У меня получилось без батника прямо из php. Спасибо. и еще: действительно ли нельзя НИКАКИМ способом запустить exe на сервере под другую ОС (включая различные ухищрения) :) просто сервер под Win дорого стоит. раз в 5 дороже у моего хостера. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти