Avatar billede 44fire44 Nybegynder
22. april 2008 - 23:09 Der er 8 kommentarer og
1 løsning

Fejl i upload/skaleringsfunktion

Hej eksperter

Hvorfor virker dette ikke?

if ($_POST['referer'] == 'post_news') {
    if ($_FILES['image']['name'] != '') {
        $image = time().substr($_FILES['image']['name'],strrpos($_FILES['image']['name'],'.'));
        move_uploaded_file($_FILES['image']['tmp_name'], '../files/'.$image);
       
        list($bredde, $hojde) = getimagesize($image); //Find højden og bredden på det billede jeg vil resize
        $forhold = $hojde/$bredde; //Hvor stor er højden i forhold til bredden?

        //Find den nye højde og bredde
        $bredde_ny = 150;
        $hojde_ny = round($bredde_ny*$forhold);
        $source = imagecreatefromjpeg("$image"); 
        $destination = imagecreatetruecolor($bredde_ny, $hojde_ny);

        //Resize
        imagecopyresized($destination, $source, 0, 0, 0, 0, $bredde_ny, $hojde_ny, $bredde, $hojde);

        //Gem
        imagejpeg($destination, '../files/thumbs/'.$image);
       
    } elseif... blah

jeg får følgende fejl:

Warning: Division by zero in C:\xxxxxxx on line 25

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: Invalid image dimensions in C:\xxxxxxx on line 31

Warning: imagecopyresized(): supplied argument is not a valid Image resource in C:\xxxxxxx on line 34

Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\xxxxxxx on line 37
Avatar billede dkfire Nybegynder
22. april 2008 - 23:40 #1
Måske:

list($bredde, $hojde) = getimagesize('../files/'.$image);
Avatar billede dkfire Nybegynder
22. april 2008 - 23:41 #2
Og lige en rettelse mere:
$source = imagecreatefromjpeg('../files/'.$image);
Avatar billede 44fire44 Nybegynder
22. april 2008 - 23:48 #3
nope - jeg får stadig de samme fejl
Avatar billede 44fire44 Nybegynder
22. april 2008 - 23:50 #4
den uploader det oprindelige billede, og omdøber det til time() - men den opretter ikke er thumbnail
Avatar billede dkfire Nybegynder
22. april 2008 - 23:58 #5
Måske :
list($bredde, $hojde) = getimagesize(realpath('../files').'/'.$image);
echo 'Bredde: '.$bredde;
echo 'Højde: '.$hojde;
echo 'image: '.$image;
Avatar billede 44fire44 Nybegynder
23. april 2008 - 00:13 #6
hvad skulle det ændre? - jeg skal ikke have printet en tekst ud, men ændret aspektet på mit billede...
Avatar billede dkfire Nybegynder
23. april 2008 - 00:14 #7
Dit problemet, som jeg kan se det, ligger i at du ikke angiver den korrekte sti til getimagesize().
Som du har skrevet det, så giver du kunne billedes navn til funktionen, men ikke stien.
Det er så det jeg forsøger på at angive.
Avatar billede 44fire44 Nybegynder
23. april 2008 - 00:35 #8
haha - jeg er vidst lidt træt - det virkede med dine første rettelser - jeg var bare kommet til at gemme filen et forkert sted ;)

smid svar for points
Avatar billede dkfire Nybegynder
23. april 2008 - 00:38 #9
Og et svar :-)
Havde godt på fornemmelsen at du have lavet et eller andet galt ;-)
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