Page 1 of 1

zip_open returns error code 5

Posted: Tue Jun 17, 2008 9:48 pm
by acio
I'm having a problem when trying to open some zip files using zip_open. With some files it works ok, but a couple of files return a 5. What does that 5 mean? I couldn't find anywhere what the error codes returned by this function mean. Any help is appreciated.

Thank you.

Re: zip_open returns error code 5

Posted: Tue Jun 17, 2008 9:58 pm
by John Cartwright
From the manual comments, you can use this function to get a verbos error.

Code: Select all

function zipFileErrMsg($errno) {
  // using constant name as a string to make this function PHP4 compatible
  $zipFileFunctionsErrors = array(
    'ZIPARCHIVE::ER_MULTIDISK' => 'Multi-disk zip archives not supported.',
    'ZIPARCHIVE::ER_RENAME' => 'Renaming temporary file failed.',
    'ZIPARCHIVE::ER_CLOSE' => 'Closing zip archive failed',
    'ZIPARCHIVE::ER_SEEK' => 'Seek error',
    'ZIPARCHIVE::ER_READ' => 'Read error',
    'ZIPARCHIVE::ER_WRITE' => 'Write error',
    'ZIPARCHIVE::ER_CRC' => 'CRC error',
    'ZIPARCHIVE::ER_ZIPCLOSED' => 'Containing zip archive was closed',
    'ZIPARCHIVE::ER_NOENT' => 'No such file.',
    'ZIPARCHIVE::ER_EXISTS' => 'File already exists',
    'ZIPARCHIVE::ER_OPEN' => 'Can\'t open file',
    'ZIPARCHIVE::ER_TMPOPEN' => 'Failure to create temporary file.',
    'ZIPARCHIVE::ER_ZLIB' => 'Zlib error',
    'ZIPARCHIVE::ER_MEMORY' => 'Memory allocation failure',
    'ZIPARCHIVE::ER_CHANGED' => 'Entry has been changed',
    'ZIPARCHIVE::ER_COMPNOTSUPP' => 'Compression method not supported.',
    'ZIPARCHIVE::ER_EOF' => 'Premature EOF',
    'ZIPARCHIVE::ER_INVAL' => 'Invalid argument',
    'ZIPARCHIVE::ER_NOZIP' => 'Not a zip archive',
    'ZIPARCHIVE::ER_INTERNAL' => 'Internal error',
    'ZIPARCHIVE::ER_INCONS' => 'Zip archive inconsistent',
    'ZIPARCHIVE::ER_REMOVE' => 'Can\'t remove file',
    'ZIPARCHIVE::ER_DELETED' => 'Entry has been deleted',
  );
  $errmsg = 'unknown';
  foreach ($zipFileFunctionsErrors as $constName => $errorMessage) {
    if (defined($constName) and constant($constName) === $errno) {
      return 'Zip File Function error: '.$errorMessage;
    }
  }
  return 'Zip File Function error: unknown';
}

Re: zip_open returns error code 5

Posted: Wed Jun 18, 2008 1:03 pm
by acio
Thank you for your quick response!

Error code 5 apparently is a "Read Error". Does anybody know why would I get this error? It's very strange. I tried with several examples and some zip files throw it and others don't. I have a folder with many files and subfolders, and I tried zipping different combinations of those files, and some of those combinations throw the error and others don't. There isn't one single file or folder that breaks the zip file. All files and folders work fine under some combination of files. Also, the size of the zip file isn't a problem.

What could it be? Any help?

Thank you!