Я написал PHP-скрипт для динамической упаковки файлов, выбранных клиентом, в zip-файл и принудительной загрузки. Он работает хорошо, за исключением того, что когда количество файлов огромно (например, более 50000), диалоговое окно загрузки на клиентской стороне занимает очень много времени.
Я думал об улучшении этого с помощью кеша (эти файлы меняются не очень часто), но поскольку выбор файлов полностью решается пользователем, а выбор состоит из десятков тысяч комбинаций, это очень сложно кешировать комбинации. Я также подумал о том, чтобы сначала создать zip-архивы для отдельных файлов, а затем объединить zip-файлы на лету. Но я не нашел способа объединить zip-файлы в PHP. Еще один способ, которым я могу придумать, - это отправка (то есть чтение) zip-файла одновременно с его генерацией. Я также не знаю, поддерживается ли это.
Если бы кто-то мог помочь мне в этом, я был бы очень признателен за вашу помощь.