Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ładowanie kilku zdjęć na raz, przerwa w działaniu skryptu
Forum PHP.pl > Forum > PHP
siutek
witam,
tworze ostatnio ostronke hostującą zdjęcia.
chcialem dać uzytkownikowi mozliwosc tworzenia galerii, w tym celu za jednym podejsciem uzytkownik wczytuje do formularza 8 zdjęć. Zakładam, że czasem znajdzie sie ktos, kto bedzie probował wgrac na serwer zdjecia, tak, jak je Bozia w aparacie stworzyla, czyli majace ponad 2000px szerokosci/wysokosci, a co za tym idzie ważące po 2-3MB. 8x3MB daje aż 24MB, więc jest to spora ilosc danych jak na upload przez www.

kiedy wgrywałem po 2, 3 zdjecia wszystko bylo ok, ale gdy dla testow wypelnilem cały formularz, czyli wskazalem 8 duzych fotek do pobrania, skrypt sie wyłożył. fotki są ładowane przez jakieś 7-8 minut, a następnie wyswietla mi sie zdekompletowana strona, czyli cały szkielet, logo, stopka, itp itd, ale juz bez tresci generowanej wewnatrz ponizszych warunkow.

aby sprawdzic jak daleko dociera skrypt wyswietlam na ekran kolejne kroki (cyferki).
i tak 3 jest wyswietlone, 4 też, ale 5 już nie, więc skrypt nie wchodzi do pętli foreach.

  1. }elseif($_GET['stp']==2){ //obsluga zaladowanych zdjec
  2. echo "3";
  3. if(is_array($_FILES)) {
  4. echo "4";
  5. foreach($_FILES as $fi) {
  6. $m++;
  7. echo "5";
  8. if(strlen($fi["name"])) {
  9. echo "6";
  10. $imgUpld = new upload($_FILES['imgFile'.$m], 'pl_PL');
  11.  
  12. if ($imgUpld->uploaded) {
  13. echo "7";
  14. $fileName = date("U")."_".md5($fi["name"]);
  15.  
  16. $imgUpld->image_convert = 'jpg';
  17. $imgUpld->allowed = array('image/*');
  18. $imgUpld->file_new_name_body = $fileName;
  19. $imgUpld->image_resize = true;
  20. $imgUpld->image_x = 700;
  21. $imgUpld->image_ratio_y = true;
  22. $imgUpld->process('./usersFiles/'.$_SESSION["usrLogin"].'/full/');
  23. if (!$imgUpld->processed) {
  24. $bigImgError = $imgUpld->error;
  25. }
  26.  
  27. $imgUpld->file_new_name_body = $fileName;
  28. $imgUpld->image_resize = true;
  29. $imgUpld->image_x = str_replace("px","",$_POST["thumbSize"]);
  30. $imgUpld->image_ratio_y = true;
  31. $imgUpld->process('./usersFiles/'.$_SESSION["usrLogin"]);
  32. if (!$imgUpld->processed) {
  33. $thumbError = $imgUpld->error;
  34. }
  35.  
  36. $imgUpld->file_new_name_body = $fileName."_thumb";
  37. $imgUpld->image_resize = true;
  38. $imgUpld->image_x = 100;
  39. $imgUpld->image_ratio_y = true;
  40. $imgUpld->process('./usersFiles/'.$_SESSION["usrLogin"]);
  41. if (!$imgUpld->processed) {
  42. $thumbError = $imgUpld->error;
  43. }
  44.  
  45. $imgUpld->Clean();
  46. }
  47. wrzucDoBazy("galleria",array("fileName"=>$fileName.".jpg","usrId"=>$_SESSION["id"],"create_date"=>date("U"),"galId"=>$galid));
  48. $idFotki = mysql_insert_id();
  49. if(!$galid) {
  50. zaktualizuj wiersz("gallery",array("id"=>$idFotki,"galId"=>$idFotki));
  51. $galid=$idFotki;
  52. }
  53.  
  54. $link.="<textarea style='height:15px;width:410px;font-size:11px;border: 1px solid #252525;color:#FFA800;background-color:#000000;'>http://www.mojastronka.pl/fota.php?fi=".base64_encode($idFotki)."</textarea><br>";
  55. $kod.="<img src='http://www.mojastronka.pl/fota.php?fi=".base64_encode($idFotki)."' vspace=5><br>";
  56. $kod2.="<img src='http://www.mojastronka.pl/fota.php?fi=".base64_encode($idFotki)."&s=0' vspace=5><br>";
  57. $wys++;
  58.  
  59. unset($fileName,$idFotki);
  60. }//zamkniecie strlena
  61. }//zamkniecie foreach
  62. }//zamkniecie if(is_array($_FILES))
  63. if($_POST["viewTyp"]==1){
  64.  
  65. $bottomBox = "<tr><td colspan=2 align=center>
  66. ".$kod2."
  67. </td></tr>
  68. <tr><td colspan=2 class=\"td5\"></td></tr>";
  69.  
  70. $cont.= "<br>Linki do zdjęć:<br>".$link."Skopiuj powyższy kod i wstaw w odpowiednie miejsce.";
  71. $cont.= "<br>Kod HTML:<br><textarea style='height:".(15*$wys)."px;width:410px;font-size:11px;border: 1px solid #252525;color:#FFA800;background-color:#000000;'>".$kod."</textarea><br>";
  72. $cont.= "<br><br><input type='button' value='zakończ' style='width:120px;' onClick=\"document.location.href='./index.php?page=log';\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='button' value='dodaj kolejne' style='width:120px;' onClick=\"document.location.href='http://mojastronka.pl/index.php?page=uploadImg&stp=1';\">&nbsp;<input type='button' value='dodaj galerię' style='width:120px;' onClick=\"document.location.href='http://mojastronka.pl/index.php?page=createGallery&stp=1';\">";
  73.  
  74. } elseif ($_POST["viewTyp"]==2) {
  75.  
  76. wrzucDoBazy("galeria",array("fileName"=>$fileName.".jpg","usrId"=>$_SESSION["id"],"zoom"=>1,"create_date"=>date("U")));
  77. $idFotki = mysql_insert_id();
  78.  
  79. $cont = "<a href='./usersFiles/".$_SESSION["usrLogin"]."/full/".$fileName.".jpg'><img src='./usersFiles/".$_SESSION["usrLogin"]."/".$fileName.".jpg' border=0></a>";
  80. $cont.= "<br>Link do miniaturki:<br><textarea style='height:15px;width:410px;font-size:11px;border: 1px solid #252525;color:#FFA800;background-color:#000000;'>http://www.mojastronka.pl/fota.php?fi=".base64_encode($idFotki)."</textarea>Link do zdjęcia w pełnym rozmiarze:<br><textarea style='height:15px;width:410px;font-size:11px;border: 1px solid #252525;color:#FFA800;background-color:#000000;'>http://www.mojastronka.pl/imgBig.php?fi=".base64_encode($idFotki)."</textarea><br>Kod HTML:<br><textarea style='height:45px;width:410px;font-size:11px;border: 1px solid #252525;color:#FFA800;background-color:#000000;'><a href='http://www.mojastronka.pl/imgBig.php?fi=".base64_encode($idFotki)."'><img src='http://www.mojastronka.pl/fota.php?fi=".base64_encode($idFotki)."' border=0></a></textarea><br>Skopiuj powyższy kod i wstaw w odpowiednie.";
  81. $cont.= "<br><br><input type='button' value='zakończ' style='width:120px;' onClick=\"document.location.href='./index.php?page=log';\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type='button' value='dodaj kolejne' style='width:120px;' onClick=\"document.location.href='http://mojastronka.pl/index.php?page=uploadImg&stp=1';\">&nbsp;<input type='button' value='dodaj galerię' style='width:120px;' onClick=\"document.location.href='http://mojastronka.pl/index.php?page=createGallery&stp=1';\">";
  82.  
  83. }
  84. }


nie zwracajcie uwagi na sume {}, kod byl wyciety z dosc pokaznego pliku, i w klamrach ktorych tu nie ma, znajdowaly sie nie istotne dla sprawy opisy.

Niestety strona nie wyswietla żadnych błędów, pomimo ustawienia error_reporting(E_ALL);, niby wszystko jest ok, bo gdyby jednak coś się wyłożyło, to serwer zwróciłby mi strone z nagłowkiem, ale już bez stopki prawda? strona lezy na serwerach DreamHost.

delikatnie mowiac... HELP?
P.S. set_time_limit ustawiony na 600, czyli 10 minut. program wyklada sie po 7...
maniutek08
A max_post_size questionmark.gif
michal_robak
a spróbuj wrzucić na samą górę skryptu linijkę:

  1. ini_set('memory_limit', '-1');
erix
  1. new upload

Co to za klasa? Jeśli bazująca na GD, to się nie dziw... Jw: większy limit pamięci.

Tak btw, przesiądź się czym prędzej na ImageMagick.
sharp156
wrzuc sobie te wartosci w skrypt wykonujacy upload na samym poczatku . moze problem lezy w ystawieniach php masz opisane wiec zlapiesz co chce powiedziec:
ini_set('memory_limit', '64M'); // limit pamięci dla wykonywanego skryptu, w megabajtach
ini_set('post_max_size', '32M'); // upload_max_filesize + dane z wszelkich innych pól formularza, w megabajtach
ini_set('upload_max_filesize', '32M'); // wielkość przesyłanych plików, w megabajtach
ini_set('session.gc_maxlifetime', '5400'); // czas wykonywania skryptu w sekundach, 90 minut
morbic
Odświeżanie tematu po pół roku co_jest.gif

Pomijam fakt, że limit pamięci podany w przykładzie kolegi jest o połowę mniejszy niż w domyślnym php.ini. A session.gc_maxlifetime wcale nie jest limitem czasu wykonywania skryptu.

Odsyłam do dokumentacji PHP: http://www.php.net/manual/pl/session.confi....gc-maxlifetime
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.