ďťż
Podstrony
|
telcocafefunction gzcompressfile($source,$level=false){ $dest=$source.'.gz'; $mode='wb'.$level; $error=false; if($fp_out=gzopen($dest,$mode)){ if($fp_in=fopen($source,'rb')){ while(!feof($fp_in)) gzwrite($fp_out,fread($fp_in,1024*512)); fclose($fp_in); } else $error=true; gzclose($fp_out); } else $error=true; if($error) return false; else return $dest; }Witam mam problem. Kod powyżej służy do pakowania pliczków. Niestety jedyne co mi się udało to pakowanie 1 pliku do jednego archiwum. W jaki sposób spakować np. 10 plików. Pętla się pewnie przyda ale brak mi pomysłu jak i gdzie. Czy jako argument funkcji podać tablicę plików? Użytkownik Dawid-San edytował ten post 04 lipiec 2008, 12:15 Hmm... A ta funkcja w komentarzach? http://pl.php.net/gzwrite // Edytowano Zmieniłeś treść postu... Wiesz w ogóle co robisz? Gzip służy do pakowania pojedynczych plików, więc kilku do jednego archiwum nie wepchniesz. Użytkownik andrzej_aa edytował ten post 04 lipiec 2008, 12:19 yhm tego nie wiedziałem :/ a takie pytanie - co mi pozwoli na stworzenie archiwum które ma w sobie np. 10 zdjęć? Użytkownik Dawid-San edytował ten post 04 lipiec 2008, 12:30 tutaj masz do zipa, nie wiem czy się przyda;) http://www.forum.ith...likow-t454.html (...)Gzip służy do pakowania pojedynczych plików, więc kilku do jednego archiwum nie wepchniesz. Ewentualnie spakuj pojedyncze pliki, a potem je dodaj do archiwum TAR(zresztą jak coś ściągasz do Linuksa do najczęściej rozszerzenie to tar.gz lub tar.bz2 :) ). Zajrzyj tu: 1. TAR File Management With PHP Archive_Tar 2. Creating ZIP and TAR archives on the fly with PHP już wczesniej na to wpadlem. Jednak muszę mieć 1000% pewności, że biblioteka zlib pozwoli mi na stworzenie archiwum wielu plików, ponieważ to nie mój serwer i jest sporo zachodu z doinstalowaniem czegokolwiek zobacz jeszcze to: http://forum.php.pl/...mp;#entry416697 już wczesniej na to wpadlem. Jednak muszę mieć 1000% pewności, że biblioteka zlib pozwoli mi na stworzenie archiwum wielu plików, ponieważ to nie mój serwer i jest sporo zachodu z doinstalowaniem czegokolwiek Z tej drugiej strony, którą Ci podałem, żadnego skryptu nie trzeba instalować - wystarczy dać pojedynczy include. A tak BTW, jeśli boisz się czegoś testować na docelowym serwerze, o czemu sobie Apache'a z PHP nie zainstalujesz w Windowsie? loguś: ten link rzeczywiście też może pomóc :) Chociaż ZIP jest trochę wolniejszy, ale jak Autorowi nie przeszkadza to ok ;) skorzystałem z tego linku -> http://www.forum.ith...likow-t454.html tworze katalog, wrzucam do niego pliki które mają być spakowane. Odpalam plik. Tworzy archiwum, a w archiwum zamiast plików są puste katalogi o nazwach plików i lipa :/ A oglądałeś mój link? tam użyto klasy która bez problemu pakuje cały katalog skorzystałem z tego linku -> http://www.forum.ith...likow-t454.html tworze katalog, wrzucam do niego pliki które mają być spakowane. Odpalam plik. Tworzy archiwum, a w archiwum zamiast plików są puste katalogi o nazwach plików i lipa :/ Kolego, jak chcesz aby ktoś Ci pomógł to czytaj uważnie to, co Ci piszemy. Według mnie link logusia pasuje do tego, co powiedziałeś, więc czemu go omijasz? właśnie się z nim zapoznaje i szukam klasy zipfile bez której to nie ruszy jakby nie patrzeć, ten też był mój;) jak nie wiesz co jeszcze trzeba dołączyć do pliku(codzi mi o ten link: http://forum.php.pl/...p;#entry416697) to poczytaj to: http://php.rinet.ru/.../en/ref.zip.php zasadniczo klasę zipfile już znalazłem. Dodałem. Archiwum jest tworzone, ale nadal jest puste - błędów żadnych nie zwraca jest jeszcze jedno rozwiązanie, aż się dziwie że wcześniej na to nie wpadłem system("zip -r folder1, folder2"); zasadniczo kod z php.pl powinien działać i się zastanawiam tylko czemu tworzy mi archiwum z pustym katalogiem dodam, że właśnie odkomentowałem linie odpowiadające w tym kodzie za pakowanie pojedyńczego pliku. Archiwum powstało, plik w nim, ale zawartość pliku została zmieniona na jego nazwę :/ Użytkownik Dawid-San edytował ten post 04 lipiec 2008, 13:16 sory że zadam takie głupie pytanie,ale czy ten katalog który pakujesz ma w sobie jakieś pliki? tak...dokładnie 11 :) Spoko rozumiem pytanie :D a mój ostatni sposób próbowałeś? właśnie go przetestowałem. Zasadniczo nic się nie dzieje, może coś źle zrobiłem :P Szukałem w manualu o tym, ale nic nie znalazłem. bo zakładam, że to ma być coś takiego system("zip -r katalog_pakowany, katalog_docelowy???); i czy to ma być cały kod czy coś jeszcze? na odwrót;p np: system("zip -r nazwa_archiwum.zip zdjecia???);gdzie zdjecia to folder;) DLA POTOMNYCH ----> http://phpclasses.to.../file/9524.html loguś wielkie dzięki za poświęcony czas:) Naprowadziłeś mnie dobrze i w końcu znalazłem. Link powyżej zawiera klasę pakującą pliki. Aktualnie zastosowałem dla sprawdzenia dla pojedyńczych plików, ale myślę, że spakowanie wielu plików to żaden problem :) Przykładowe zastosowanie klasy dla dwóch plików <?php include_once("zipfile.php"); $createZip = new createZip; $createZip -> addDirectory("dir/"); //$fileContents = file_get_contents("config.inc"); //$createZip -> addFile($fileContents, "testt/config.inc"); //$createZip -> addFile($fileContents, "testt/style.css"); $fileContents1 = file_get_contents("config.inc"); $fileContents2 = file_get_contents("style.css"); $createZip -> addFile($fileContents1, "testt/config.inc"); $createZip -> addFile($fileContents2, "testt/style.css"); $fileName = "archive.zip"; $fd = fopen ($fileName, "wb"); $out = fwrite ($fd, $createZip -> getZippedfile()); fclose ($fd); $createZip -> forceDownload($fileName); @unlink($fileName); ?> Użytkownik Dawid-San edytował ten post 04 lipiec 2008, 13:59 a miało być tak pięknie...powyższy kod PRAWIE działa. Kiedy pakuję nim pliki .jpg to archiwum jest nie do razpakowania ponieważ jest uszkodzone :/ ktoś wie co może być przyczyną ? może wykonywanie operacji zostaje w pewnym momencie przerwane? Uszkodzone... Edytuj w notatniku, może jakieś błędy śmiecą binarkę. |
|||
Sitedesign by AltusUmbrae. |