У меня есть Сценарий PHP, который создает zip-файл на лету и вынуждает браузер загрузить zip-файл. Вопрос: разве я мог непосредственно записать zip-файл в поток вывода, который подключен к браузеру пользователя, а не сохраните его как реальный файл на сервере сначала и затем отправьте файл?
Заранее спасибо.
Нет, вы должны использовать временный файл, как в здесь .
Если вы используете расширение zip , ответ будет «нет». Метод закрытия в классе ZipArchive - это то, что запускает запись, и, похоже, он хочет записать в файл. Вам , возможно, повезет с использованием Streams для имитации файла, но тогда вы сохраните все это в памяти, и вы все равно не сможете отправить его, пока не закончите добавление файлы.
Если у вас возникли проблемы с тайм-аутом или другие проблемы, когда пользователь ждал создания zip-файла, попробуйте многоступенчатый процесс загрузки: