Jeg er ved at lave et galleri i php, og har derfor lavet et script som bliver kørt, når man uploader et billed.
Scriptet uploader billedet, og resizer det til 140x100px(skal bruges som thumb), vha. GDLib, og gemmer det i en mappe ved siden af.
Men problemet er at hvis jeg uploader et billede på over 190kb, så får jeg en fatal error, når den vil til at resize billedet
Scriptet virker perfekt, hvis bare billedet ikke er for stort, men det er lidt træls at skulle resize nogen billeder rigtig langt ned i størrelse.
Her er fejlen:
"Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 9088 bytes) in /sti/til/mit/webhotel/galleri/admin_galleri_upload_picture.php on line 104"
Mit webhotel ligger på Web10..
Og jeg kan se i phpinfo "memory_limit" er sat til "8M"
Er der nogen der ved hvordan jeg kan få løst det her problem? Det ville bare være dejligt!
Her er scriptet:
//Lav æ,ø,å og andre tegn om til noget optimalt!
$rep_seek_aeoeaa = array("æ",
"Æ",
"ø",
"Ø",
"å",
"Å");
$rep_repl_aeoeaa = array("ae",
"Ae",
"oe",
"Oe",
"aa",
"Aa");
$rep_seek_signs = array("?",
"/",
"\\\\",
"!",
"'",
"*",
"½",
"§",
"\\"",
"@",
"#",
"£",
"¤",
"$",
"%",
"&",
"{",
"}",
"(",
")",
"[",
"]",
"=",
"?",
"=",
"´",
"`",
"|",
"<",
">",
".",
",",
":",
";");
$rep_repl_signs = array("");
$filnavn = str_replace($rep_seek_aeoeaa, $rep_repl_aeoeaa, $_POST[navn]);
$filnavn = str_replace($rep_seek_signs, $rep_repl_signs, $filnavn);
//check om navnet på billedet er i brug
$is_name_in_use_q = mysql_query("SELECT
*
FROM
stensmark_billeder
WHERE
album='$_POST[album]'
AND
filnavn='$filnavn'");
$is_name_in_use_a = mysql_num_rows($is_name_in_use_q);
if($is_name_in_use_a !== 0){
?><p style="color: red;">Navnet er allerede i brug, find på noget andet!</p><?php
} else{
//Hent navnet på albummet, og upload billedet
$what_album_q = mysql_query("SELECT navn FROM stensmark_albums WHERE id='$_POST[album]'");
$what_album_d = mysql_fetch_array($what_album_q);
$sti = "galleri/$what_album_d[navn]/big/$filnavn.jpg";
move_uploaded_file($_FILES[fil][tmp_name], $sti);
//Generer thumb
list($bredde, $hoejde) = getimagesize($sti);
$destination = imagecreatetruecolor(140, 100);
$source = imagecreatefromjpeg($sti);
//Resize
imagecopyresampled($destination, $source, 0, 0, 0, 0, 140, 100, $bredde, $hoejde);
//Gem
imagejpeg($destination, "galleri/$what_album_d[navn]/thumbs/$filnavn.jpg");
imagedestroy($destination);
imagedestroy($source);
mysql_query("INSERT INTO
stensmark_billeder
(album, filnavn)
VALUES
('$_POST[album]', '$filnavn')");
?><p style="color: green;">Billedet er nu tilføjet</p><?php
}