Jump to content

как открыть файл через командную строку в html


Recommended Posts

На веб-странице делаю ссылку на файл exe с параметрами

*.расширение 1 *.расширение 2 - имена входных и выходных файлов.

Это работает в командной строке в Volkov Commander, но здесь не проходит. Как быть?

Link to comment
Share on other sites

Вообщем этого сделать нельзя.

Когда вы даете ссылку на .exe, пользвател должен сначало скачать а после этого запустить, так что параметри от самой странице нельзя установит. Напишите пользвателям инструкцию как пользувать программу

Еще если вам нужно установить некоторые параметри в .exe перед тем как польватель скачал его, нужно его пре-пачить, т.е. чтоб ссылка не была на .exe а на PHP скрипт, который откроеть файл, сделаеть изменения и отправить его к браузеру. Но это только если вы знаете что вам нужно именно это и если вы автор .exe файла, т.е. у вас есть изходний код, и только если возможно ссылки на .exe отправить на php / perl скриптов

Link to comment
Share on other sites

Что он делает ты уже сам будешь определять. Факт в том, что у пользователя на компе ты ничего с файлом сделать не сможешь, максимум - ты можешь закачать его пользователю, но все равно у пользователя выскочит сообщение с вопросом скачивать этот файл или нет. А то что тебе предложил Darhazer нужно в том случае, если ты, для примера, хранишь файл основная часть которого для всех одинаковая, но, например, чтобы зарегистрировать программу, надо этот файл подправить определенным образом, вот тогда ты его и подправляешь своим скриптом. Да, этот скрипт позволяет и переименовывать файлы тоже, но пользователь все равно получит файл с конечным разширением и согласие он будет давать на файл с конечным разширением. Этот способ подходит только в том случае, если у тебя на сервере нельзя хронить файлы с таким разрешением.

P.S. На счет написания готового скрипта ко мне не обращайся, я этим не занимался никогда и скорее всего не скоро руки дойдут разобраться что к чему...

Link to comment
Share on other sites

Я имел в виду, чтобы некоторый процесс запускал файл на сервере, так сказать, например, через php, а не у клиента ;) и клиент видел только результаты в виде файла конечного - он-то и пишется в командной строке

Пользователь ничего не должен сам писать. М.б. только имена этих файлов, а все должно запускаться без его ведома. Выходной файл генерируется на сервере .

И появляется содержимое этого файла на странице. Прога работает через сервер.

Link to comment
Share on other sites

Я имел в виду, чтобы некоторый процесс запускал файл на сервере, так сказать, например, через php, а не у клиента ;) и клиент видел только результаты в виде файла конечного - он-то и пишется в командной строке

Пользователь ничего не должен сам писать. М.б. только имена этих файлов, а все должно запускаться без его ведома. Выходной файл генерируется на сервере .

И появляется содержимое этого файла на странице. Прога работает через сервер.

Если на сервере, то тогда тебе нужна ссылка не на самого файла, а на скрипт, котоый запустить файл и покажеть потом резултать. К стате, хостери обично запрещяють юзать подобних скриптов

В PHP можно пользувать:

passthru( "some.exe *.расширение 1 *.расширение 2 - имена входных и выходных файлов");

Или

$result = system( "some.exe *.расширение 1 *.расширение 2 - имена входных и выходных файлов");

echo $result;

Edited by Darhazer
Link to comment
Share on other sites

Если на сервере, то тогда тебе нужна ссылка не на самого файла, а на скрипт, котоый запустить файл и покажеть потом резултать. К стате, хостери обично запрещяють юзать подобних скриптов

В PHP можно пользувать:

я в PHP чайник, ты не подскажешь, как это обычно делается - там обычно надо создавать файл, потом стирать и т.п. В хтмл все просто, а здесь есть какой-то исходник для любого файла пхп, куда можно вставить этот код, и все заработает? Как все делается по шагам?

Можно ли просто аплоудить файл пхп с этим кодом?

Спасибо.

Link to comment
Share on other sites

Привет

Во первых, чтоб запустил .exe тебе нужен сервер с Windows и чтоб разрешено было запускать программ

Во вторих, скрипт точно такой же:

<?phppassthru( "команда и ее параметри");?>

Если работаеш под *nix, тебе нужна программа, которая работаеть под этой ОС, надо ей дат +x (chmod 777 например) и скрипт опять такой же:

<?phppassthru( "команда и ее параметри");?>

Попробуй залить сам PHP скрипт и открить его в браузере (набрать адрес скрипта) и увидеш работаеть ли он или нет

А потом сделаеш и необходимие изменения в HTML

Link to comment
Share on other sites

Что я точно знаю, так это то, что у меня есть сайт, на котором можно загружать файлы через ftp. Скорее всего, там не видноусовский сервер, но как это узнать? Если он не винд-й, то что надо делать? Мне нужно очень четко понять (если Юникс сервер):

если я 1) загружу на мой сайт файл .exe, файл входной как первый параметр, и 2) после запуска скрипта на php - будет ли исполняться этот файл (даже если необходимо еще что-то сделать)? И сохранять результат в файл второго параметра?

Что значит программа, раб. под Юникс? Моя, которую я хочу залить или другая?

Надеюсь, ты не пропустил, что моя прога работает через командную строку, а не просто. Как это будет реализовываться через php и инет?

Link to comment
Share on other sites

Привет

Какая ОС на сервере можно узнать если сделаеш php файл:

<?phpphpinfo();?>

Загружаеш на сервер и откриваеш в браузер

Под Unix / Linux .exe просто не будеть работать. Оно работаеть только под Windows

А что делаеть это .exe? Возможно можно сделать операцию и с софтом, который есть на сервере?

Link to comment
Share on other sites

Программа вычислительная, считает уравнения всякие.

Но если там unix, то разве нельзя придумать к-н. фичу, чтобы запустить в обход?

А где можно взять сервер с виндами? или могут ли дать эти хостеры сервер с виндами? они могут изменить тип ОС?

если прога запускается только из командной строки vc (dos), то это будет влиять на ее запускабельность через инет?

Link to comment
Share on other sites

делаю скрипт запуска .bat через php. на сервере стоит Вин (вроде бы).

А если бы там был Юникс, батник запустился бы?

почему passthru не запускает exe? сам батник вроде бы запускается, по крайней мере создает файлы, копирует и т.д.

А вот exe файл - нет. И сам php с passthru "зависает" - действия он выполняет нужные, но страница до конца не открывается.

Edited by Darhazer
Link to comment
Share on other sites

Вообщем это вопрос по операционних систем

bat-ник запустился бы если это валидний bash или sh скрипт, так как bat - это команди для облочки Windows, а у Unix стоить другая облочка

Насчет passthru - пробували вы запустить его не через passthru а через system()

passthru перенаправляеть весь output программы к браузеру и возможно если программа показиваеть чтото другое кроме текста в конзоли, чтоб не работала

Link to comment
Share on other sites

Кто из гуру поможет разобраться в необъяснимой ошибке:

Все говорится о файлах, лежащих в корневой директории сервера под 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() и другие способы. Дубово стоит на одном месте. :greedy:

Подскажите, я уже валюсь от усталости в этом разбираться.

p.s. То есть в корневой папке моего сайта.

Link to comment
Share on other sites

Guest avb_constructor

А зачем так сложно? :bye1:

Батник можно и без php запускать. Он ведь у тебя должен распаковать zip-архив с помощью pkunzip'a? Ну, тогда просто этот батник со строчкой , которую ты написал, запускаешь и всё.

Может быть, проблема еще и в том, что ты не так записал параметр pkunzip'a для распаковки архива. Проверь, так ли ты всё пишешь?

А самый главный нюанс в том, что если ты работаешь в ХРюше, то твои действия - совершенно бессмысленные, т.к. во-первых, она больше не поддерживает многие мсдосовские команды (по крайней мере, большинство прог (если не все), которые работали в MS-DOS, не работают в ХРюше), а во-вторых, у ХРюши есть встроенное средство для распаковки zip-архивов и называется zip-папкой.

Link to comment
Share on other sites

Покажите содержимуе phperrors.log или настройте PHP показивать всех ошибок на екране

Также допишите после passthru()

echo "OK";

чтоб увидеть доходить ли скрипт вообще до конца

Link to comment
Share on other sites

у меня XP, но ведь я запускал из батника, даже команды выполнялись некоторые (например, создание директории) - этого бы не было, если написать просто в XP в проводнике, к примеру.

Значит, командная строка запускалась сама, как и должно быть при нажатии на батник.

Дело только в том, что экзешники при этом не запускались. Значит, проблема была в них. Как оказалось, это было из-за того, что pkunzip.exe - старый досовский файл, а уже более новый unzip.exe - он запустился прекрасно, и получилось то, что нужно.

Но это было странно, т.к. на моем компе запустился даже pkunzip.

М.б. на сервере было что-то другое, или специальные параметры доса, или его там нет :)

Вывод: запускаться должны приложения win32, работающие с командной строкой (если таковые имеются). Следующий шаг - запустить такое приложение, которое я хотел.

У меня получилось без батника прямо из php.

Спасибо.

и еще: действительно ли нельзя НИКАКИМ способом запустить exe на сервере под другую ОС (включая различные ухищрения) :)

просто сервер под Win дорого стоит. раз в 5 дороже у моего хостера.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...