Изменение ZIP на лету и отдача на скачку

Q_BASIC

Хранитель порядка
Регистрация
30 Ноя 2013
Сообщения
516
Реакции
1.240
Приветствую,

Есть zip архив, надо в него добавить 1 файл (в нём id файла и подпись) и отдать пользователю на скачивание. Но сам архив изменять не надо.

Как реализовать такое?

И еще возможность докачки желательно.
 
Есть вот такая штука:
Для просмотра ссылки Войди или Зарегистрируйся

Насчёт правки архива - не скажу, а вот генерация нового - точно можно...

Насчёт докачки... В целом, тоже можно сделать, но тут вопрос в другом - придётся либо хранить где-то архив, либо генерировать его каждый раз заново )) В остальном проблем нет.
 
Есть вот такая штука:
Для просмотра ссылки Войди или Зарегистрируйся

Насчёт правки архива - не скажу, а вот генерация нового - точно можно...

Насчёт докачки... В целом, тоже можно сделать, но тут вопрос в другом - придётся либо хранить где-то архив, либо генерировать его каждый раз заново )) В остальном проблем нет.
Генерировать то я могу, думаю, если ничего не предложите, сделать это: копировать исходный архив, и после этого уже изменять и удалять после скачивания.

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

Ну и на счет докачки, сейчас подумал, ну её. Не так она и нужна, а места много ради неё нужно.
 
Есть такая штука: Для просмотра ссылки Войди или Зарегистрируйся :)
А ещё нагуглил примеры Для просмотра ссылки Войди или Зарегистрируйся
Да это всё понятно, я почитал мануал по zip. Мне надо в памяти.

Подумал про data:// - там записи нет.
 
php://memory поток для работы в памяти, работает на чтение и запись
 
php://memory поток для работы в памяти, работает на чтение и запись
Отттуда ZIP'ом не открыть. Ему нужен путь до файла, а тут только есть дескриптор

Что-бы можно было ZIP'ом открыть, нужно адрес, который через file_get_contents можно было бы открыть - это для наглядности.
 
ну тогда разве что использовать альтернативные библиотеки для создания zip файлов,
например Для просмотра ссылки Войди или Зарегистрируйся или ее потомок Для просмотра ссылки Войди или Зарегистрируйся.
PHPZip как раз умеет и делать файлы в памяти и отправлять на скачку пользователю, но
ему нужен php 5.3.0 или выше. Документации у него как таковой нет к сожалению,
но есть примеры с комментариями в папке legacy.
 
А если вызывать консольный zip с нужными параметрами для добавления 1 файла в существующий архив и направления результата не в файл, а в STDOUT и читать его из php.
 
Назад
Сверху