Динамически созданные zip-файлы с помощью ZipStream в PHP не открываются в OSX

У меня есть сайт PHP с большим количеством медиафайлов, и пользователи должны иметь возможность загружать несколько файлов одновременно, поскольку .zip. Я пытаюсь использовать ZipStream для обслуживания zip-архивов на лету со сжатием "store", поэтому мне не нужно создавать zip-архив на сервере, поскольку некоторые файлы огромны, и это недопустимо. медленно сжимает их все.

Это отлично работает, и полученные файлы могут быть открыты любой zip-программой, которую я пробовал, без ошибок, за исключением стандартной программы разархивирования OS X, Archive Utility. Вы дважды щелкаете файл .zip, и утилита архивирования решает, что он не выглядит как настоящий zip, и вместо этого сжимает его в файл .cpgz.

Edit - Я также пробовал алгоритм сжатия «deflate» и получил те же результаты, поэтому я не думаю, что это «магазин». Также стоит отметить, что я извлекаю файлы по одному с сервера хранения и отправляю их по мере их поступления, поэтому решение, требующее загрузки всех файлов перед отправкой чего-либо, не будет жизнеспособным (экстремально Например, 5 ГБ + 20 МБ файлов. Пользователь не может дождаться, пока все 5 ГБ будут переданы на сервер архивирования, прежде чем начнется их загрузка, иначе они подумают, что файл сломан)

Вот 140-байтовый сжатый "хранимый" тестовый zip-файл, который показывает это поведение: http://teknocowboys.com/test.zip

10
задан Community 23 May 2017 в 12:18
поделиться