• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

php image Upload

Status
Für weitere Antworten geschlossen.

forsti222

Neues Mitglied
Bin eben fertig geworden mitn Imageupload und stelle mir nun die Frage wie ich überprüfen kann ob es auch wirklich ein Bild ist, nicht nur eine Datei die mit .png,jpg oder sonstwas geliefert wird, da ich bis jetzt nur auf die Endung überprüfe nicht auf den Inhalt! Kann mir da jemand helfen?

lg danke
 
Kleines Beispiel:

PHP:
$datei = "test.jpg";

function detect_mime($filename) {
$filetype=strrchr($filename, ".");

switch ($filetype) {
case ".bmp": $datei="image/bmp"; break;
case ".gif": $datei="image/gif"; break;
case ".jpeg": $datei="image/jpeg"; break;
case ".jpg": $datei="image/jpeg"; break;
case ".png": $datei="image/png"; break;
}
return $datei;
}

So und dann brauchste ja nur noch ne Abfrage, die $datei überprüft. Habs aber nicht getestet. Such am besten einfach bei Google ma nach "MIME-Typ"
 
hm naja es gibt noch weitere Varianten - allerdings weiß ich nicht welche am sichersten ist. Vlt alle miteinander kombinieren ^^
PHP:
//Methode 1
//$bild ist die hochgeladene Datei
if(getimagesize($bild) === false) unlink($blid);

//Methode 2
if(!preg_match("%.+/image%i",$_FILES["file"]["type"])) unlink($bild);

ansonsten kannst du auch einfach versuchen ob du mit den Bildfunktionen etwas am bild ändern kannst, wenn das fehlschlägt ist es kein Bild...
 
Weiß nicht, ob das möglich ist, sollte aber. Man kann die Datei ja auch mit PHP öffnen und die ersten paar Buchstaben auslesen. Wenn man das ganze mal mit nem Texteditor macht, sieht man, was ich meine.

Funktioniert sehr gut bei .gif-Dateien, weil man es direkt erkennt an den ersten Buchstaben in der Datei. .jpg hat auch immer das selbe und sonst hab ich noch nichts weiteres getestet.
 
Ich habe das heute erst gemacht, leider etwas erfolglos xDD

also..
irgendwie so ->

PHP:
<?php

if (eregi('.jpg',$file) || eregi('.gif',$file) || eregi('.bmp',$file) || eregi('.png')) {
echo 'Alles hat geklappt.';
}
else {
echo '<br> Es sind nur die Dateitypen .jpg , .gif , .bmp und .png erlaubt!<br>';
}

?>

$file , ist die die Variable für die datei.

Schreib einfach mal google, php eregi , hin ^^ ;heart
 
@zorndyuke: Überprüft das ganze dann nicht auch nur, ob es JPG oder jpg ist? Also wenn ich mir so das Beispeil auf php.net anschaue

PHP:
<?php
$string = 'XYZ';
if (eregi('z', $string)) {
    echo "'$string' contains a 'z' or 'Z'!";
}
?>

Zeigt für mich, dass er nach bestimmten Dingen, in diesem Falle ein "z" in einem String durchsucht und dann ausgibt, dass dieses "z" in irgendeiner Form vorhanden ist.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben