Wykonałem na potrzeby Allegro skrypt generujący kod do aukcji, wraz z szablonem i galerią. Skrypt ma kilka kroków: najpierw podaje dane opisu przedmiotu, a w drugim kroku podaje zdjęcia i ewentualnie kolory do nich.
Wszystko działało poprawnie, dopóki nie była potrzebna do przerobienia większa ilość zdjęć. Fotografie są duże, mają 4000x3000, i skrypt je przerabia do rozmiarów 500x375 i dodaje logo wodne.
Skrypt przerabia poprawnie 4 zdjęcia. Lecz gdy ustawię 6 zdjęć, i kliknę "Generuj" to formularz jakby od razu przeskakuje. Normalnie, gdy zdjęcia się przerabiają, pojawia się loader (na tej samej stronie).
Kod:
include('simpleimage.php'); include('znakwodny.php'); $image = new SimpleImage(); $i = $_SESSION['dane_zdjec']['numerod']; foreach($_FILES as $key => $value) { { } if($_SESSION['dane_zdjec']['nazwa'] == '$') { $plik_nazwa_doc = $value['name']; } $_SESSION['dane_zdjec']['zdjecia'][$key] = $value['name']; $plik_tmp = $value['tmp_name']; $plik_nazwa = $value['name']; $plik_rozmiar = $value['size']; } $image->load("tmp/$plik_nazwa_doc"); $image->resizeToHeight(375); $image->save("tmp/$plik_nazwa_doc"); $nr = $nr[1]; $kolor = $_SESSION['dane_zdjec']['kolor'.$nr]; $polozenie = $_SESSION['dane_zdjec']['polozenie'.$nr]; switch($polozenie) { case 'left;top': $hpos = PhpGdWatermarker::HALIGN_LEFT; $vpos = PhpGdWatermarker::VALIGN_TOP; break; case 'right;top': $hpos = PhpGdWatermarker::HALIGN_RIGHT; $vpos = PhpGdWatermarker::VALIGN_TOP; break; case 'left;bottom': default: $hpos = PhpGdWatermarker::HALIGN_LEFT; $vpos = PhpGdWatermarker::VALIGN_BOTTOM; break; case 'right;bottom': $hpos = PhpGdWatermarker::HALIGN_RIGHT; $vpos = PhpGdWatermarker::VALIGN_BOTTOM; break; } if($kolor == 'bialy') { $logo = 'logo1.png'; } else { $logo = 'logo2.png'; } $watermarker = new PhpGdWatermarker($logo, $vpos, $hpos); $watermarker->setEdgePadding(10); $watermarker->applyWaterMark("tmp/$plik_nazwa_doc"); $i++; } $ftp = ftp_connect('xxx'); ftp_login($ftp, 'xxx', 'xxx'); ftp_pasv($ftp, true); { if($file != '.' && $file != '..') { $nazwa = $nazwa_t[1]; ftp_put($ftp, "zdjecia/$nazwa", $file, FTP_BINARY); } } ftp_close($ftp);
Jestem w stanie udostępnić skrypt, lecz nie publicznie na forum gdyż za jego pomocą można by było nieźle namieszać na moim serwerze.
Proszę o pomoc!