Witam!
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(strstr($_SESSION['dane_zdjec']['nazwa'], '#')) {
$plik_nazwa_doc = str_replace('#', $i, $_SESSION['dane_zdjec']['nazwa']).'.jpg'; }
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);
foreach(glob('tmp/{*.jpg}', GLOB_BRACE
) as $file) {
if($file != '.' && $file != '..')
{
$nazwa = $nazwa_t[1];
ftp_put($ftp, "zdjecia/$nazwa", $file, FTP_BINARY);
rename($file, "przerobione/$nazwa"); }
}
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!