Mam problem ze skryptem. Przez 5 inputów ładuję 5 plików, powiedzmy po 3MB - chodzi o JPG. Skrypt ma zadanie przerobić je jeżeli są większe od 800x600 i zmniejszyć, po czym dorobić miniaturkę. Jeżeli wgram np. tylko dwa obrazki z pięciu możliwych to skrypt normalnie wchodzi. Jeśli natomiast wgram te 5 to skrypt się sypie i wgrywa np. tylko jeden albo nic. Memory_limit mam ustawiony na 128MB - myślałem że to pomoże ale nic. Przy okazji czyści mi inne zmienne które były w tym formularzu. Nie wyskakuje żaden błąd, mimo włączonych opcji ich pokazywania. WTF, że tak się zapytam.
Kod zmniejszania (funkcje resize i resize2):
<?php
function resize($filef, $new_width, $new_height, $thumb, $quality) {
if ($info === false)
return false;
$img = null;
$img = imagecreatefromjpeg($filef);
$th = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($th, $img, 0, 0, 0, 0, $new_width, $new_height, $info[0], $info[1]);
imagejpeg($th, $filef, $quality);
imagedestroy($th);
imagedestroy($img);
return true;
}
function resize2($filef, $new_width, $new_height, $thumb, $quality) {
if ($info === false)
return false;
$img = null;
$img = imagecreatefromjpeg($filef);
$th = imagecreatetruecolor(80, 80);
imagecopyresampled($th, $img, 0, 0, 0, 0, $new_width, $new_height, $info[0], $info[1]);
imagejpeg($th, $filef, $quality);
imagedestroy($th);
imagedestroy($img);
return true;
}
?>
Kod wgrywania (funkcja uruchamiana kilkakrotnie w przypadku kilku plików):
function adpic($id,$arg,$position) {
$path="../pliki/".$id;
if ($info[0]>$info[1]) {
if ($info[0]>625) {
$height=(625/$info[0])*$info[1];
resize($path."/".$newimage, 625, $height, $path."/".$newimage, 75);
}
} elseif ($info[0]<$info[1]) {
if ($info[1]>450) {
$width=(450*$info[0])/$info[1];
resize($path."/".$newimage, $width, 450, $path."/".$newimage, 75);
}
}
if ($info[0]<=$info[1]) {
copy($path."/".$newimage,$path."/thumb_".$newimage); $thumb_height = (80/$info[0])*$info[1];
resize2($path."/thumb_".$newimage, 80, $thumb_height, $path."/thumb_".$newimage, 80);
} elseif ($info[0]>$info[1]) {
copy($path."/".$newimage,$path."/thumb_".$newimage); $thumb_width=(80*$info[0])/$info[1];
resize2($path."/thumb_".$newimage, $thumb_width, 80, $path."/thumb_".$newimage, 80);
}
$pic=mysql_query("INSERT INTO zdjecie values ('','".$id."','".$newimage."','".$position."')"); }