kori 29 Zgłoś post Napisano Luty 9, 2015 Pakowanie mi działa, wypakowanie nie, proszę o pomoc. pakowanie wszystkich plików w folderze do pliku backup.zip w nadrzędnym folderze zip('../backup.zip', './');z pliku backup.zip będącego w nadrzędnym folderze wypakowanie pliku o nazwie: '217.99.43.67' do aktualnego folderu unzip('../backup.zip', './217.99.43.67'); function zip($zipfile, $directory_files) { if ($handle = opendir($directory_files)) { $zip = new ZipArchive(); if ($zip->open($zipfile, ZIPARCHIVE::CREATE)!==TRUE) exit("cannot open <$filename>\n"); while (false !== ($file = readdir($handle))) if(strpos($file,'.')>0) $zip->addFile($directory_files.$file); //echo "$file\n"; closedir($handle); echo "numfiles: " . $zip->numFiles . "\n"; echo "status:" . $zip->status . "\n"; $zip->close(); echo 'Zip File:'.$zipfile . "\n"; } } function unzip($zipfile, $unzip) { $unzip_dir=substr($unzip,0,strrpos($unzip,'/')+1); $unzip_file=substr($unzip,strrpos($unzip,'/')+1,9999); $zip = new ZipArchive; $res = $zip->open($zipfile); if ($res === TRUE) { $zip->extractTo($unzip_dir, $unzip_file); $zip->close(); echo 'ok'; } else echo 'failed'; } zip('../backup.zip', './'); unzip('../backup.zip', './217.99.43.67'); Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Luty 9, 2015 A wykonuje się extractTo czy wypluwa failed? Jakiś komunikat się pojawia, coś w logach? Udostępnij ten post Link to postu Udostępnij na innych stronach
kori 29 Zgłoś post Napisano Luty 9, 2015 (edytowany) 1. dodałem: error_reporting(E_ALL); ini_set("display_errors", 1); Komunikat leci ok. Błędów php brak. 2. Gdy wywaliłem $unzip_file z $zip->extractTo($unzip_dir, $unzip_file); to wypakowalo, tylko że ja chce wypakować tylko jeden pliczek 3. Zmieniłem: $unzip_file z $zip->extractTo($unzip_dir, $unzip_file);na: $unzip_file z $zip->extractTo($unzip_dir, './'.$unzip_file); i o dziwo wreszcie wypakowalo moj pliczek, aczkolwiek nie rozumiem czemu musialem dodac './' ci co pisali manuala walneli błąd? z manuala http://php.net/manual/en/ziparchive.extractto.php: $zip = new ZipArchive; $res = $zip->open('test_im.zip'); if ($res === TRUE) { $zip->extractTo('/my/destination/dir/', array('pear_item.gif', 'testfromfile.php')); $zip->close(); echo 'ok'; } else { echo 'failed'; } Edytowano Luty 9, 2015 przez kori (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
kori 29 Zgłoś post Napisano Luty 9, 2015 ok wyczaiłem gdzie błąd był, w samym pakowaniu stąd ta './' wymagana przy dekompresji pierwsza linia przed, druga po zmianieif(strpos($file,'.')>0) $zip->addFile($directory_files.$file); if(strpos($file,'.')>0) $zip->addFile($directory_files.$file, $file); Udostępnij ten post Link to postu Udostępnij na innych stronach