ID: 46985 Updated by: paj...@php.net Reported By: killerbg at gmail dot com Status: Feedback Bug Type: Zip Related Operating System: Windows XP Professional SP3 PHP Version: 5.2.8 Assigned To: pajoye New Comment:
It works just fine here (in apache2 sapi, iis, fcgi and cli). Can you try the following script please? I suspect some other errors happening and they are not displayed. Be sure to have display_errors activated. By the way, in the latest releases there are "addFromPattern"/"Glob" functions which let you add recursively something like "*.jpeg" :) <?php $path = 'C:\yourpath\\'; $count = 0; function archive($path, $local) { global $zip, $count; if ($handle = opendir($path)) { while (($file = readdir($handle)) !== false) { if (($file != ".") && ($file != "..")) { echo "$file\n"; var_dump($local, $file, $path); if (is_dir($path . $file)) { $zip->addEmptyDir($local . $file . "/"); archive($path . $file . "/", $local . $file . "/"); } elseif (is_file($path . $file)) { if ($count > 128) { $zip->close(); $zip->open($GLOBALS["file"]); $count = 0; } $zip->addFile($path . $file, $local . $file); $count++; } } } closedir($handle); } echo "count: $count\n"; } $file = 't.zip'; $zip = new ZipArchive(); if (($zip->open($file, ZipArchive::CREATE)) === TRUE) { archive($path, null); $zip->close(); } echo "done\n"; Previous Comments: ------------------------------------------------------------------------ [2008-12-31 23:12:49] killerbg at gmail dot com Here is an archive containing both the corrupted file created with the new versions, a good file created with the same script and older version (5.2.6) and the script used - http://rapidshare.com/files/178582253/Error.zip.html ------------------------------------------------------------------------ [2008-12-31 21:21:33] paj...@php.net I can't reproduce it here (xp sp3 and vista/2k8). Please provide the file(s) (the minimum required to create a corrupted archive) and the script you are using. ------------------------------------------------------------------------ [2008-12-31 20:27:12] killerbg at gmail dot com Description: ------------ On Windows XP Professional Service Pack 3 with Apache 2.2.11 and PHP 5.2.8 - PHP 5.2.9 loaded as dynamic module when creating archive and adding files and/or folders the ouput is incorrect and the file gets corrupted. Even trying to open it again with the script results error code 19. Reproduce code: --------------- $file = tempnam("/tmp/", "php"); $zip = new ZipArchive(); if (($zip->open($file, ZipArchive::OVERWRITE)) === TRUE) { $zip->addEmptyDir("Directory"); $zip->addFile("File"); $zip->close(); } Expected result: ---------------- Correctly created zip archive file with unique name located in the temporaly directory. Actual result: -------------- Only the firsts few added files visible but corrupted acording to the crc32 record. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=46985&edit=1