ID: 46985
Updated by: [email protected]
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] [email protected]
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