Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Вниз

Файл - Из консоли   Найти похожие ветки [Delphi] - в скрипт [PHP]

 
timekiller ©   (2009-09-03 15:17) [0]

Есть консоль, которая обрабатывает некий бинарный файл
Текущий алгоритм:
Результат некой обработки 1го бинарного файла создается и записывается как другой бинарный файл, затем с помощью PHP формируется ссылка для скачивания на 2й бинарный файл.

Дайте наводку:
Каким образом сделать так, чтобы консоль отдала результат веб скрипту без создания 2го бинарного файла? Обычный Write/Writeln какбы нещадно рвет/выдает непонятными кусками содержание файла (Видимо спецсимволы?)...


 
Омлет   (2009-09-03 15:24) [1]

Формировать ссылку, а файл2 не делать.
Когда по ссылке обратятся, тогда создавать файл2 и отдавать.


 
timekiller ©   (2009-09-03 15:26) [2]

Нужно обойтись без файла 2, вообще ... Без лишнего мусора тоесть


 
Омлет   (2009-09-03 15:32) [3]

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


 
timekiller ©   (2009-09-03 15:49) [4]

Нет, должен быть файл, консоль и отдаваться результат, все просто, не нужны другие файлы попросту. Тоесть не нужно несколько путей и крюков - нужна прямая...
Проблема еще и в том что на папку с консолью обязательно стоит chmod 40555 (FreeBSD)
Просто создать некий поток, как сделать - я пока не вкурсе...


 
McSimm ©   (2009-09-03 23:58) [5]

Вопрос о чем ? как передать из внешнего процесса в PHP без создания файла ?
Или как правильно выдать из консоли набор данных ?
Посмотрите PHP функцию popen()

> Обычный Write/Writeln какбы нещадно рвет/выдает непонятными
> кусками содержание файла (Видимо спецсимволы?)...

куда именно выдает - в браузер, терминал или в файл ?


 
timekiller ©   (2009-09-04 12:17) [6]

Вопрос о чем ? как передать из внешнего процесса в PHP без создания файла ? - да да, двоичный файл (бинарник)

> Обычный Write/Writeln какбы нещадно рвет/выдает непонятными
> кусками содержание файла (Видимо спецсимволы?)...

куда именно выдает - в браузер, терминал или в файл - Вывод на консоль, который можно returnить и в браузер и в терминал или в файл посредством > FreeBSD


 
McSimm ©   (2009-09-04 12:23) [7]


> как передать из внешнего процесса в PHP без создания файла
> ? - да да, двоичный файл (бинарник)

Ответ на этот вопрос - popen() - запустите ваш процесс из PHP и будете читать вывод этого процесса, без создания файла.
--
программа на D7 работать на FreeBSD наверное не будет :)


 
timekiller ©   (2009-09-04 13:15) [8]


> программа на D7 работать на FreeBSD наверное не будет :)


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


 
McSimm ©   (2009-09-04 13:18) [9]

Еще - саму консольную программу можно вполне сделать как CGI и вызывать без всяких PHP.


 
timekiller ©   (2009-09-04 13:28) [10]

Ну а теперь назад, про вывод - как всётаки отдавать данные, с помощью чего?

Writeln/write рвут вывод (выдают хаотично кусками)


 
McSimm ©   (2009-09-04 13:34) [11]

BlockWrite, наверное поможет.


 
timekiller ©   (2009-09-04 13:41) [12]


> BlockWrite, наверное поможет.


дк это про файл.. или memorystream, который я не умею передавать во вне ....


 
McSimm ©   (2009-09-04 13:45) [13]

Не обязательно.
Можно связать хендл файла со стандартным устройством.
Если не ошибаюсь - пустое имя файла в AssignFile сделает свое дело.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.10.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.034 c
15-1250752659
Павел Калугин
2009-08-20 11:17
2009.10.25
Методика тестирования програмного обеспечения


2-1251711555
Franzy
2009-08-31 13:39
2009.10.25
Как передать в dll адрес процедуры?..


4-1220124773
yaric
2008-08-30 23:32
2009.10.25
Путь к файлу в котром присутствует кириллица


15-1251188499
Сергей М.
2009-08-25 12:21
2009.10.25
SOHO-маршрутизатор D-Link DI-804HV


2-1251099283
abhtr
2009-08-24 11:34
2009.10.25
CreateProcess





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский