Ziparchive не может открыть zip-файл только в PHP

Я пытаюсь разархивировать файл с помощью класса PHP ZipArchive, но когда я пытаюсь:

$file = '/path/to/zip/file.zip';
$zip = new ZipArchive();
$res = $zip->open($file, ZipArchive::CHECKCONS);

Результат ZipArchive::ER_INCONS (Zip-архив несовместим)

Теперь я смог открыть zip-файл на своем рабочем столе (Windows 7), а также с помощью инструмента командной строки bash unzip на том же компьютере, где запущено приложение PHP (Ubuntu 12.04). Я даже могу разархивировать файл в PHP, используя exec('unzip', $file);.

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

Я не уверен, что это актуально, но zip-файл, который я пытаюсь открыть, содержит два zip-файла.

Любые идеи относительно того, почему это может происходить?


person jdubu423    schedule 03.12.2015    source источник
comment
Возможный дубликат Распаковать файл с помощью php   -  person Cyrus    schedule 03.12.2015
comment
Можете ли вы опубликовать файл, который вы пытаетесь распаковать?   -  person Michael Ryan Soileau    schedule 03.12.2015
comment
К сожалению, я не могу из-за конфиденциальной информации.   -  person jdubu423    schedule 03.12.2015


Ответы (1)


Оказывается, файл загружался как ASCII, и я изменил его, чтобы загрузить как двоичный файл.

person jdubu423    schedule 31.03.2016
comment
Вы спасатель! Сколько времени я потратил на изменение сценария распаковки, хотя на самом деле это была загрузка файла по FTP. Как вы это узнали? - person Rick; 24.04.2020