Been playing with this for a few hours and it seems that anything but a plain
text file (doc,xls,pdf,etc.) is being trashed by ZipArchive. 

Has anyone had similar experiences or am I just doing something stupid and
can't see it?

Whatever the problem is, it certainly is silent about it.  I thought it may
be a permissions thing but that doesn't seem to be it.  The one file it
doesn't mess up is a plain text file.  Anything else gets trashed.  

-km

  public function zipAction() {
        $params = SiteControllers::getParams();
                if(!isset($params['file'])) {
                        echo "zip: file param expected - not found";
                        return false;
                }
        $file = $params['file'];
                if(!file_exists("uploads/{$file}")) {
                        echo "file to zip: {$file} not found";
                        return false;
                }
                $zip = new ZipArchive;
                $res = $zip->open("uploads/{$file}.zip", ZipArchive::OVERWRITE);
                if ($res === TRUE) {
                        $zip->addFile("uploads/{$file}","{$file}");
                        $zip->close();
                        unlink("uploads/{$file}");
                        echo "{$file} - was zipped";
                        return true;
                } else {
                        echo "{$file} - zip failed";
                        return false;
                }
        }

        public function unzipAction() {
        $params = SiteControllers::getParams();
        $file = $params['file'];
                if(!isset($params['file'])) {
                        echo "unzip: file param expected - not found";
                        return false;
                }
                $zfn = "uploads/{$file}.zip";
                if(!file_exists($zfn)) {
                        echo "zip file: {$zfn} not found";
                        return false;
                }
                if(file_exists("uploads/{$file}")) {
                        echo "file to unzip: {$file} exists";
                        return false;
                }
                $zip = new ZipArchive;
                $res = $zip->open($zfn);
                if ($res === TRUE) {
                        $zip->extractTo("uploads/");
                        $zip->close();
                        echo "{$file}: unzipped";
                        unlink($zfn);
                        return true;
        } else {
                        echo "unzip for: {$file} failed";
                        return false;
                }
        }

-- 
View this message in context: 
http://www.nabble.com/zipArchive---corrupting-files--tf3359654.html#a9345356
Sent from the PHP - General mailing list archive at Nabble.com.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to