Autor Zpráva
tondapinda
Profil *
Zdravím,

mám takový problém, snažím se zabalit adresář se zachováním struktury do .Zipu, ale zabalí mi to celý adresář od kořene.
Tedy, takto. Mám adresář "gallery" v /html/var/clients/1/web/gallery/ a v zipu se mi vytvoří 2 složky (viz níže) a já potřebuji, aby tam byla pouze ta /gallery/..její složky/fotky..

Nyní když rozbalím ZIP, tak se mi vytvoří všechny složky, podsložky z /gallery/ - které ovšem neobsahují žádné soubory (fotky)
Navíc je tam ale složka /html/ (pokračuje) /var/clients/1/web/gallery/ ve které už jsou všechny...


        

$zip = new ZipArchive;
$zip ->open("files/backups/".$this->zipFileName, ZipArchive::CREATE);
$this->addFolderToZip("gallery", $zip );
$zip->close();

function addFolderToZip($source, $zip) {

                                        $source = realpath($source);
                                        if (is_dir($source)) {
                                                $iterator = new RecursiveDirectoryIterator($source);
                                                // skip dot files while iterating 
                                                $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
                                                $files = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
                        
                                                foreach ($files as $file) {
                                                    if ($file != "." && $file != "..") {
                                                        $file = realpath($file);
                                                        if (is_dir($file)) {
                                                                $zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
                                                        } else if (is_file($file)) {
                                                                $zip->addFile($file, $source.'/'.$file );
                                                        }
                                                    }
                                                }
                                        } else if (is_file($source)) {
                                            $zip->addFile($source);
                                        }

                return false;
        }
        

Děkuji za rady.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0