смена ссылки через 2-3 сек

Ayrat
Дата: 07.07.2006 07:42:16
Есть БД с большим количеством документов. При выводе некоторых документов приходится получать данные из разных источников БД, инф.файлы, счета, директории ... и выводить в виде таблиц:
Наименование поля Значение
Имя файла: Договор №39 от 10.04.2006
Наименование: оказание услуг
Примечание:
МЕСТО ОРИГИНАЛА: бухгалтерия, Иванов И.И.
Платежи: 12.04.2006 400 т.р., 06.06.2006 440 т.р.
...
Размер файла: 4 168 572 байт

Еще сам файл не готов, т.е. не подготовлен в виде .pdf. Мне нужно чтобы ссылка на файл работала набодобие:

Распаковываю файл!
2-3 сек. подождать и дать ссылку
Договор №39 от 10.04.2006.pdf
если потигла неудача (бывают пользователи удаляют документы на Базе Документооборота), а данные о них еще лежит :-)))
то вывести вмесо ссылки:
Ну нешмогла я, не шмогла
Модератор:
Оформляйте топики согласно требованиям форума!!! Топики оформленные не по правилам - будут удаляться.
Пчеловод
Дата: 07.07.2006 09:56:43
ничего не понял... можно не так сумбурно, в какой момент выводится ссылка? при каком условии "подготавливается файл"?
maXmo
Дата: 07.07.2006 11:48:55
подождать 2-3 секунды - это <meta http-equiv="refresh" content="3; url=getfile.php?id=1254"/> после чего выдаёшь-таки файл или выводишь нужное сообщение.
Ayrat
Дата: 07.07.2006 12:16:17
прошу прощения, я может неправильно высказался:
Можно наверно JS ссылку:
<JavaScript>
Вывод Распаковываю файл!
цикл 1 - N
Ждать 1 сек
считать файл <a htth://сайт/user10.txt...
if длина файла = 5 --> Error --> Вывод Нет данных! --> Выход из цикла
if длина файла > 5 "имя файла" --> вывод ссылка <a htth://сайт/"имя файла"...
--> Выход из цикла
Конец цикла

у меня тут написано в лоб(а хочется красиво и нежно):
<?php
header('Content-type: multipart/x-mixed-replace;boundary=endofsection');
print "\n--endofsection\n";
for( $i = 0; $i <10; $i ++ ){
sleep(1);
echo "Content-type: text/plain\n\n Извините за задержку: $i\t";
for ($j =0; $j < $i+1; $j++) echo 'M';
for ($j =0; $j+$i < 11; $j++) echo '.';
print "--endofsection\n";
ob_flush();
flush();
}
print "Content-type: text/plain\n\n";
echo '<HTML><a href="index.htm">Документы готов</a>\n</HTML>';
print "--endofsection--\n";
?>
Пчеловод
Дата: 07.07.2006 13:06:57
может просто воспользоваться ф-ей file_exists()
И ты не объяснил что за файл и откуда берется. Скачиваешь из инета? Формируешь данные после запроса из БД? Стороннее приложение формирует файл и выкладывает его на диск?
Опиши задачу подробнее, так проще будет найти грамотное решение, мы же сейчас просто гадаем, что у тебя откуда берется...
Ayrat
Дата: 07.07.2006 14:16:33
Пчеловод
может просто воспользоваться ф-ей file_exists()
И ты не объяснил что за файл и откуда берется. Скачиваешь из инета? Формируешь данные после запроса из БД? Стороннее приложение формирует файл и выкладывает его на диск?
Опиши задачу подробнее, так проще будет найти грамотное решение, мы же сейчас просто гадаем, что у тебя откуда берется...

Да программа из документооборота выкладывает файл.
выполняется FileDoc /I:ID_Doc /F:FileOut.txt
где ID_Doc - ID документа
FileOut.txt - имя созданного файла, (куда FileDoc пишет имя выходного файла или Error)
Но перед этим файл FileOut.txt создаю на PHP, нуловой длины.
Пчеловод
Дата: 07.07.2006 14:40:53
Ayrat
Но перед этим файл FileOut.txt создаю на PHP, нуловой длины.
А зачем?

Обновляй страницу как сказал maXmo, а методом file_exists() проверяй наличие файла, после чего (если файл существует) читай из него методом file() содержимое и вперед...