Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zipowanie dużej ilości plików
Forum PHP.pl > Forum > PHP
Wertas
Chcę utworzyć skrypt, który będzie pakował bardzo dużą ilość plików do zipa około 50k

  1. include_once("CreateZipFile.inc.php");
  2. $createZipFile=new CreateZipFile;
  3.  
  4. $directoryToZip="repository";
  5. $outputDir=".";
  6. $zipName="CreateZipFileWithPHP.zip";
  7.  
  8. define("ZIP_DIR",1); //
  9.  
  10.  
  11. if(ZIP_DIR)
  12. {
  13. //Code toZip a directory and all its files/subdirectories
  14. $createZipFile->zipDirectory($directoryToZip,$outputDir);
  15. }else
  16. {
  17. //?
  18. }
  19.  
  20. $fd=fopen($zipName, "wb");
  21. $out=fwrite($fd,$createZipFile->getZippedfile());
  22. fclose($fd);
  23. $createZipFile->forceDownload($zipName);
  24. @unlink($zipName);


Ten skrypt działa w miarę przy 2-3 tys plików. Lecz nie jest to jeszcze ten rezultat, który chcę osiągnąć. Przy większej ilości plików dostaję błąd
  1. Fatal error: Maximum execution time of 360 seconds exceeded in C:\xampp\htdocs\filemanager\CreateZipFile.inc.php on line 92
  2.  
  3. $newOffset = strlen(implode("", $this->compressedData));


Czy znacie jakieś rozwiązanie tego problemu? Może jakieś party by się robiły z zipa nie wiem sam, pomóżcie.

http://pastebin.com/iHfT6x69 kod CreateZipFile.inc.php
Pyton_000
A zwyczajowe http://us2.php.net/manual/en/book.zip.php nie sprawcza się?
Poza tym ustaw np:
  1. ini_set('max_input_time ', 3600);
mstraczkowski
Masz możliwość wykonywania poleceń na serwerze (np. przez exec) ?
Pakowanie takich rzeczy już bym zaimplementował korzystając z systemu, a nie z samego PHP.

Oczywiście podany wyżej max_execution_time tak czy siak Ci się przyda.
Pyton_000
Zamiast exec radziłbym jeżeli to możliwe ustawienie zadania crona które sprawdza czy istnieje jakiś 1 określony plik "flaga", jeżeli tak to niech cron zadba o stworzenie pliku.
mstraczkowski
No tak, prosty skrypt w bashu uruchamiany z crona to byłoby najlepsze rozwiązanie smile.gif
Ale jako, że jest to forum PHP, to dostarczam odpowiedzi, które o niego "zahaczają"
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.