of het plaatje daadwerkelijk goed is en niet een ander iets is behalve dan een jpeg gecomprimeerd plaatje?...
http://nl.php.net/manual/nl/function.getimagesize.php
With JPG images, two extras index are returned : channel and bits. channel will be 3 for RGB pictures, and 4 for CMYK pictures. bits is the number of bits for each color.
Ok stel ik heb een jpg, maar die is niet helemaal lekker maar het is wel een jpg hoe kan ik dan checken of die image echt goed is... (soort crc check
) maar dan wanneer een user dat plaatje heeft geuploaded
..
Je kan kijken of het plaatje te resizen is ofzo?
Buildin GD gebeuren of met een externe tool zoals ImageMagick..
Buildin GD gebeuren of met een externe tool zoals ImageMagick..
Je kunt de MIME-header van het ge-uploade bestand checken.
Deze moet dan 'image/jpeg' of 'image/pjpeg' (progressive jpeg) zijn. Zie regel 5 in de code in dit topic.
Deze moet dan 'image/jpeg' of 'image/pjpeg' (progressive jpeg) zijn. Zie regel 5 in de code in dit topic.
Onverstandig. Aangezien die info van de browser komt en makkelik te faken isOp vrijdag 01 maart 2002 13:17 schreef Splatter het volgende:
Je kunt de MIME-header van het ge-uploade bestand checken.
Deze moet dan 'image/jpeg' of 'image/pjpeg' (progressive jpeg) zijn. Zie regel 5 in de code in dit topic.
Programmer - an organism that turns coffee into software.
Ik zou toch voor het resizen gaan. Dat is volgens mij de enige manier om het echt te bepalen. Dan moet tenslotte alle data behandeld worden.
Ja, ik vraag me ook wel eens af wat er gebeurt als ik een jpg upload die door "the joiner" is gemaakt
Verwijderd
Je zou naar de header kunnen kijken, dwz de eerste bytes inlezen. Dat is ook wat MS doet om bv te bepalen dat het geen jpg is maar een WMF en daarom windows media player voor je opstart.
Misschien dat je voor header herkenning eens op mdsn kunt kijken.
Misschien dat je voor header herkenning eens op mdsn kunt kijken.
hey Otaku-san ik heb gekeken maar weinig gevonden oftewel nietsOp vrijdag 01 maart 2002 15:30 schreef otaku-san het volgende:
Je zou naar de header kunnen kijken, dwz de eerste bytes inlezen. Dat is ook wat MS doet om bv te bepalen dat het geen jpg is maar een WMF en daarom windows media player voor je opstart.
Misschien dat je voor header herkenning eens op mdsn kunt kijken.
check eens op ImageCreateFromJPEG in de manual:
Met deze code moet het je vast wel lukken om iets te bouwen dat checked of een bestand ook echt een jpeg'je is
ImagecreateFromJPEG() returns an empty string on failure. It also outputs an error message, which unfortunately displays as a broken link in a browser. To ease debugging the following example will produce an error JPEG:
PHP:
1
| <?function LoadJpeg ($imgname) { $im = @ImageCreateFromJPEG ($imgname); /* Attempt to open */ if (!$im) { /* See if it failed */ $im = ImageCreate (150, 30); /* Create a blank image */ $bgc = ImageColorAllocate ($im, 255, 255, 255); $tc = ImageColorAllocate ($im, 0, 0, 0); ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc); /* Output an errmsg */ ImageString ($im, 1, 5, 5, "Error loading $imgname", $tc); } return $im;}?> |
Met deze code moet het je vast wel lukken om iets te bouwen dat checked of een bestand ook echt een jpeg'je is
had hetzelfde probleem, heb het zo opgelost:
PHP:
1
| <? while ($test = $reader->read()){ $extensie = strtolower(substr($test, -3,3)); $image = $dir[fotos]."/".$test; $size = @getimagesize($image); // first we check the file type by extension if (!preg_match("/$dir[type]/", $extensie)) { continue; } // now we check the real file type; based on file header 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF elseif (!file_exists($data) && $size[2] != 2) { // move the faulty image to the error dir before any other processing occurs copy($image, $dir[fotos]."/error/".$test); unlink($image); } // check the file for data corruption elseif (!file_exists($data) && !@ImageCreateFromJPEG($image)) { copy($image, $dir[fotos]."/error/".$test); unlink($image); } //these are supposed to be the good ones! else { $names[] = $test; } } // end while?> |
en nee, ik houd niet van voetbal... :)
@ImageCreateFromJPEG($image) is inderdaad slim!
als het geen jpeg is geeft hij natuurlijk false terug
als het geen jpeg is geeft hij natuurlijk false terug
nou, de eerste 2 stappen halen er als het goed is de jpg als tussenuit; cd @ImageCreateFromJPEG($image) is bedoeld om verrotte files er tussen uit te halen omdat anders php over zijn nek gaat als je er later mee gaat spelen!
en nee, ik houd niet van voetbal... :)
Pagina: 1