Toon posts:

[PHP+GDlib] imagecreatefrom.. werkt niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
Beste mensen,

Het volgende is het geval:

Mijn opdrachtgever heeft mij verzocht een foto-album te maken voor zijn website. Hier ben ik nu mee bezig en krijg het vermoeden dat de GD library iets mankeerd.

Wat die vent straks moet doen is:
- Upload de foto's in het upload mapje.
- Druk op start
Wanneer dit gebeurt gaat het script werken:

Eerst worden de foto's uit het uploadmapje gehaald en naar een temp mapje verplaatst.
Daarna wordt door middel van een functie het plaatje dusdanig verwerkt zodat er een logo inzit en er thumbnails worden aangemaakt.

Verder ben ik niet gekomen omdat er bij het maken van de thumbnails zich al problemen voordoen.

Het gaat om de volgende lines of code:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        //image handle aanmaken
        if(file_exists($tmpfile))
        {
            if($type == 'gif'){
                $thumbtmp = imagecreatefromgif($tmpfile) or die("Error in imagecreatefromgif.");
            }
            elseif($type == 'jpg' OR $type == 'jpeg'){
                $thumbtmp = imagecreatefromjpeg($tmpfile) or die("Error in imagecreatefromjpeg.");
            }
            elseif($type == 'png'){
                $thumbtmp = imagecreatefrompng($tmpfile) or die("Error in imagecreatefrompng.");
            }
        }
        else
        {
            echo "Bestand bestaat niet.";
        }
        if($thumbtmp)
        {
            echo "bevat data";
        }
        //Aanmaken van de thumb zelf
        $thumbdst = imagecreate($thumb_final_width,$thumb_final_height) or die("Error in imagecreate");
        imagecopyresized($thumbdst,$thumbtmp,0,0,0,0,$thumb_final_width,$thumb_final_height,$orig_width,$orig_width) or die("Error in imagecopyresized.");
In eerste instantie krijg ik dus de melding: Error in imagecopyresized.
Maar na het testen van de variables, krijg ik bij $thumbdst de melding "Resource ID#6" maar bij $thumbtmp helemaal niets.

Dus ik ga er vanuit dat de variable $thumbtmp helemaal leeg is. En dat wil dus zeggen dat imagecreatefrom...() niet goed werkt.

Ook bij de test:
PHP:
1
2
3
if($thumbtmp) {
  echo "Variable gevuld";
}
Krijg ik niet deze melding.

Nu heb ik al gekeken of het iets met rechten te maken heeft door middel van alles even tijdelijk open te gooien met een chmod 777. Maar ook dit helpt niets.

Tevens het testen van de variable die in imagecreatefrom...() verwijst naar de foto is gewoon correct.

Wat zou dit kunnen zijn? Want ik zit al de hele dag vanalles uit te proberen en te googlen maar ik kan me niets bedenken of vinden wat de oorzaak hiervan zou kunnen zijn.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Hele stomme vraag: wat is de waarde van $type? Staat daar wel in wat je verwacht? Internet Explorer wil namelijk voor jpegs nog wel eens het image/pjpeg mimetype zetten. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
-NMe- schreef op dinsdag 25 juli 2006 @ 16:03:
Hele stomme vraag: wat is de waarde van $type? Staat daar wel in wat je verwacht? Internet Explorer wil namelijk voor jpegs nog wel eens het image/pjpeg mimetype zetten. :)
Dit ga je niet menen!

Dat was het gewoon. $type was de enige variable die ik blind vertrouwde. En dan blijkt dat ding ineens in plaats van "gif" of "jpg", ".gif" of ".jpg" er van te maken.

Ik schaam me diep, vooral omdat ik er ook nog eens uren en uren naar gekeken heb en alles zelfs herschreven heb. ;(

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op dinsdag 25 juli 2006 @ 16:08:
Dat was het gewoon. $type was de enige variable die ik blind vertrouwde. En dan blijkt dat ding ineens in plaats van "gif" of "jpg", ".gif" of ".jpg" er van te maken.
Het lijkt erop dat je het type uitleest aan de hand van de extensie. Dit gaat bijvoorbeeld fout wanneer iemand hoi.txt hernoemt naar hoi.jpg en het upload. Wanneer mogelijk is het het beste om het type te bepalen aan de hand van de inhoud van het bestand, bijvoorbeeld met de functie mime_content_type.

  • mrFoce
  • Registratie: Augustus 2004
  • Laatst online: 11-02 17:14
Verwijderd schreef op dinsdag 25 juli 2006 @ 16:08:
[...]


Dit ga je niet menen!

Dat was het gewoon. $type was de enige variable die ik blind vertrouwde. En dan blijkt dat ding ineens in plaats van "gif" of "jpg", ".gif" of ".jpg" er van te maken.

Ik schaam me diep, vooral omdat ik er ook nog eens uren en uren naar gekeken heb en alles zelfs herschreven heb. ;(
Sorry hoor, maar waarom doe je niet gewoon even debuggen zoals echo "Type: $type"; ofzo ?

Zo simpel om te kijken wat er gebeurd :O Dan had je de fout binnen 3 minuten gevonden O-)

Verwijderd

Topicstarter
gideon82 schreef op dinsdag 25 juli 2006 @ 16:16:
[...]

Sorry hoor, maar waarom doe je niet gewoon even debuggen zoals echo "Type: $type"; ofzo ?

Zo simpel om te kijken wat er gebeurd :O Dan had je de fout binnen 3 minuten gevonden O-)
Klopt, dit heb ik bij de rest van de variablen ook gedaan. Maar ik verwachtte domweg dat deze 100% goed was. Stom ik weet het.
GlowMouse schreef op dinsdag 25 juli 2006 @ 16:12:
[...]

Het lijkt erop dat je het type uitleest aan de hand van de extensie. Dit gaat bijvoorbeeld fout wanneer iemand hoi.txt hernoemt naar hoi.jpg en het upload. Wanneer mogelijk is het het beste om het type te bepalen aan de hand van de inhoud van het bestand, bijvoorbeeld met de functie mime_content_type.
Klopt, ik weet dat ik het beter anders kan doen, maar dit was puur even om het algemene script goed te laten werken. Vanavond ga ik even naar die site van je kijken, ik moet nu zo weg namelijk.

In ieder geval bedankt iedereen.
Pagina: 1