Архивирование на лету в поток браузера

Rulezzzz

Новичок
Архивирование на лету в поток браузера

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

Rulezzzz

Новичок
Автор оригинала: KaYSer
при архивировании директорий, больших архивах, конечно лучше всё на лету делать)))))

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

Alexandre

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

как один из вариантов - использовать popen
вызвать команду tar -c * /path/to/dir | gzip -cf

а если еще прописать соответствующие ХТТП заголовки - то получим скачивание файла архива
 

Rulezzzz

Новичок
Автор оригинала: Alexandre
а что тебе мешает сделать архив и отдать его в поток браузера?
Если файлов на 2 гига сначала архивировать, а потом отдавать, то сколько времени пройдет???
Нужно именно отдавать его сразу... Т.е. он архивирует в поток браузера сразу, после нажатия на ссылку... Вот что требуется...
 

Alexandre

PHPПенсионер
Если файлов на 2 гига
2 Гига вообще не реально по НТТР отдавать.

первым запрсом Архивируй, далее показывается рефрешный экран (раз 1 в мин) - "подождите плиииз - архивируется", а по окончания архивации отдается ссылка на зазипованный архив
 
Сверху