php contoleren of uploaded file een plaatje is

De titel zegt het al: Hoe kan ik controleren of het geuploaded bestand een plaatje is?

Mimetype en extentie controleren. Stel dat je een jpeg wilt uploaden: [code:1:4ad444c3b3]//==-- Extentie controleren --==//

// Naam van de afbeelding
$name = basename($_FILES[‘image’][‘name’]);
// Opsplitsen dmv punt naar een array
$img = explode(".", $name);
// Aantal elementen in array tellen
$count = count($img);
// Laatste stukje van de array pakken, als het goed is de extentie
if (strtolower($img[$count - 1]) !== “jpg”) {
echo “extentie moet jpg zijn”;
exit;
}

//==-- Mimetype controleren --==//

// Mimetype opvragen
$mime = $_FILES[‘image’][‘type’];
// Mimetype controleren
if ($mime !== “image/jpeg”) {
echo “Geen jpg”;
exit;
}[/code:1:4ad444c3b3]

Ik heb de code niet getest overigens.

Ok, duidelijk! Maar is er geen php functie die controleert of iets een plaatje is?

Voor zover ik weet niet.

Er is wel de functie getimagesize();. Ik weet alleen niet of je er ook wat aan hebt met het uploaden, omdat getimagesize() volgens mij werkt met bestanden die al geupload zijn.

Niet voor alles is er een phpfunctie. Je kan er ook zelf ene maken, en die overal gaan hergebruiken.

Niet alles moet voorgekauwd worden :wink:

Die getimagesize() is wel een functie waar ik wat mee kan. En het bestand is al geupload wanneer je de check doet. Ik heb nu de volgende oplossing: [code:1:d99398b802]$the_file = $_FILES["the_file"]; $valid_extensions = array("jpeg", "jpg", "png", "gif"); $file_extension = substr($the_file["type"], (strpos($the_file["type"], "/")+ 1), strlen($the_file["type"])); $is_image = (in_array($file_extension, $valid_extensions)) ? true : false;[/code:1:d99398b802]

Bij het uploaden van een bestand, zoals je reeds gezien hebt, kun je checken of het bestand een plaatje is ja of nee.

met getimagesize kan het dus ook.

[code:1:8e2917a656]
$imageinfo = getimagesize($plaatje);

echo $imageinfo[2];
[/code:1:8e2917a656]

als je nu 1 ge-echoot krijgt, dan is het een gif bestand.

Uit de PHP documentatie:
Index 2 is a flag indicating the type of the image: 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(intel byte order), 8 = TIFF(motorola byte order), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM.

Handy! Thanks a lot!