Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zipowanie dużej ilości plików, może być zlecenie
Wertas
post
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 2.03.2010

Ostrzeżenie: (0%)
-----


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

Ten post edytował Wertas 1.11.2013, 23:21:48
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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);
Go to the top of the page
+Quote Post
mstraczkowski
post
Post #3





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


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.

Ten post edytował mstraczkowski 3.11.2013, 01:53:53


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
mstraczkowski
post
Post #5





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


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ą"

Ten post edytował mstraczkowski 3.11.2013, 11:38:19


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 00:04