Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z ZipArchiwe
Forum PHP.pl > Forum > PHP
igla007
Witam.
Mam problem z ZipArchiwe. Tworzę archiwum, dodaje do niego pliki i tu wszystko działa ok. Problem pojawia się przy pobraniu tego archiwum. Otóż, po rozpakowaniu pojawia się katalog "pliki" w nim "aktualności", następnie katalog o nazwie wskazanej przez zmienną $id i dopiero w tym katalogu znajdują się pliki które mnie interesują. Moje pytanie brzmi, czy istnieje możliwość utworzenia archiwum tylko z interesującymi mnie plikami, bez katalogów nadrzędnych?

Kod skryptu:

  1. $id = $_GET['id'];
  2.  
  3. $zip = new ZipArchive();
  4. $plik_arch = "./pliki/aktualnosci/$id/zdjecia.zip";
  5.  
  6. if ($zip->open($plik_arch, ZIPARCHIVE::CREATE) !==TRUE)
  7. {
  8. exit ("nie mogę zrobić pliku archiwum <$plik_arch>");
  9. }
  10.  
  11. $folder = dir('./pliki/aktualnosci/'. $id);
  12.  
  13. while($plik = $folder->read())
  14. {
  15.  
  16. if(($plik != '.') && ($plik != '..') && ($plik != 'zdjecia.zip'))
  17. {
  18. $zip->addFile("./pliki/aktualnosci/$id/$plik");
  19. }
  20. }
  21.  
  22. $zip->close();
d3ut3r
Spróbuj tak:

  1. $zip->addFile('./pliki/aktualnosci/'.$id.'/'.$plik,$plik);
igla007
Kurcze już prawie działa. Otóż bo otworzeniu archiwum widoczne są od razu pliki, ale oprócz nich katalog o nazwie ".", a wnim kolejne katalogi...
d3ut3r
a co masz w zmiennej $plik ?
igla007
W if-ie sprawdza czy nazwa folderu to ".", dodatkowo dodałem if-a, który sprawdza czy dodawany do archiwum plik jest folderem (jeżelli tak, to ma go pominąć, ale dalej to samo, dalej oprócz zdjęć, do archiwum dodawany jest folder.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.