Avatar billede kren1000 Nybegynder
29. januar 2007 - 13:39 Der er 1 kommentar og
1 løsning

Mindre problem ved upload af billeder

Jeg har et upload script, der fint uploader tekst og billeder. Mit problem er at så snart mit billede kommer over 1mb, laver den ikke thumbnail og melder fejl i browser:

Webhotellet kan kun klare op til 2 mb, men det er også nok, den oploader jo fint nok, laver bare ikke thumbs når de er større.
Kan nogen hjælpe med hvad der er galt?

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 7200 bytes) in /var/www/html/admin/mobler_opret_indsaet.php on line 51

Koden, hvor linie 51 er $src_img=ImageCreateFromJpeg("$image");
-----------------------------------------------------------------
DBCONNECT...

//Her skal filen flyttes fra
$src = $_FILES['fil']['tmp_name'];

//Hvilken type fil arbejder vi med?
$ext = strtolower(end(explode(".", $_FILES['fil']['name'])));

//laver lige et par variabler :-)
$navn = $navn;
$pris = $pris;
$beskrivelse = $beskrivelse;
$tid = time();

//Her giver vi billedet et andet navn, så der ikke kommer to ens navne…
$nytNavn = "mobel-" . $tid . "." . $ext;

//Her er vores destination for det store billede
$dst = "mobler/" . $nytNavn;

//her uploades det store billede:
copy($src, $dst);

//billed-funktioner:
$image = $dst;

//hvis billedet eksisterer
if(file_exists($image)) {

//billedet eksisterer
$foto = 1;

//find størrelsen
$imgsize = getimagesize($image);

//hvis bredden er mere end 200px
if($imgsize[0] > 100) {

//sæt det nye billedes bredde til 200,
//og regn højden ud så propertionerne passer
$width = 200;
$height = $imgsize[1] / ($imgsize[0] / 200);

//lav et nyt, blankt billede
$dst_img=imagecreatetruecolor($width,$height);

//åbn kildebilledet
$src_img=ImageCreateFromJpeg("$image");

//kopiér og resize kildebilledet over i det nye billede
ImageCopyResampled($dst_img,$src_img,0,0,0,0,$width,$height,ImageSX($src_img),ImageSY($src_img));

//lav output til mappen /tmp/
ImageJpeg($dst_img, "mobler/thumbnail/" . $nytNavn);
       
//hvis bredden ikke er over 200px
} else {

//åbn kildebilledet og lav output
$src_img=ImageCreateFromJpeg("$image");
ImageJpeg($src_img, $dst);
};

//sæt url'en til billedet
$imgurl = "mobler/thumbnail/" . $nytNavn;
} else {

//foto findes ikke
$foto = 0;
};

//Her ligges oplysningerne ind databasen – huske at connecte til den!

$query    = "INSERT into `mobler`
                    SET
                    `navn` = '".$navn."',
                    `pris` = '".$pris."',
                    `beskrivelse` = '".$beskrivelse."',
                    `billede` = '".$dst."',
                    `thumbnail` = '".$imgurl."'";
mysql_query($query) or die(mysql_error());;
Avatar billede limemedia Nybegynder
29. januar 2007 - 15:05 #1
lig
ini_set("memory_limit","12M");

øverst i dit dokument

det er nogle store billeder du leger med, du vil få et bedre resultat hvis du fx bruger photoshop til at resize ned til din max størrelse, og så derfra lave dit thumbnail
Avatar billede kren1000 Nybegynder
29. januar 2007 - 16:09 #2
Tak for det, det virker perfekt:).
Ja jeg ved godt at photoshop vil være en god mellemstation, men det er en der ikke har så meget forstand på det, der skal bruge det.

Hermed point og tak igen:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester