wapplay 6 лет назад
Родитель
Сommit
75578fd181
1 измененных файлов с 6 добавлено и 3 удалено
  1. 6 3
      src/IO/ZipReader.php

+ 6 - 3
src/IO/ZipReader.php

@@ -24,6 +24,7 @@ use PhpZip\Model\Extra\ZipExtraDriver;
 use PhpZip\Model\Extra\ZipExtraField;
 use PhpZip\Model\ImmutableZipContainer;
 use PhpZip\Model\ZipEntry;
+use PhpZip\Util\PackUtil;
 
 /**
  * Zip reader.
@@ -249,13 +250,15 @@ class ZipReader
      */
     protected function findZip64ECDPosition()
     {
-        $data = unpack('VdiskNo/Pzip64ECDPos/VtotalDisks', fread($this->inStream, 16));
+        $diskNo = unpack('V', fread($this->inStream, 4))[1];
+        $zip64ECDPos = PackUtil::unpackLongLE(fread($this->inStream, 8));
+        $totalDisks = unpack('V', fread($this->inStream, 4))[1];
 
-        if ($data['diskNo'] !== 0 || $data['totalDisks'] > 1) {
+        if ($diskNo !== 0 || $totalDisks > 1) {
             throw new ZipException('ZIP file spanning/splitting is not supported!');
         }
 
-        return $data['zip64ECDPos'];
+        return $zip64ECDPos;
     }
 
     /**