Feststellen, ob eine Datei ein Bild ist.
lemmingdotname
- php
Hallo,
ich habe eine Internetseite wo Benutzer Benutzerbildchen hoch laden können. Das müssen ico, bmp, gif, jpg und png sein.
Wie kann ich denn Testen, dass der Benutzer auch tatsächlich ein Bild hoch geladen hat, dass den o. g. Formaten entspricht?
Danke für die Antwort.
lemming
Ich grüsse den Cosmos,
Wie kann ich denn Testen, dass der Benutzer auch tatsächlich ein Bild hoch geladen hat, dass den o. g. Formaten entspricht?
Entweder du prüfst die Dateiendung. Wobei ein böser Mensch den Dateinamen auch ändern kann. Der Vorteil, du kannst das vor dem Upload per JavaScript prüfen.
Alternativ untersuchst du die Datei nach dem Upload. Am Anfang der Datei kann man auslesen, ob es eine Bilddatei ist. Welche Stelle du genau auslesen musst, kannst du in den Spezifikationen der Dateiformate nachlesen.
Möge das "Self" mit euch sein
Ciao,
Suche mal nach MIME TYPEN, mit dieser Hilfe, kannst du ganz einfach all dies abfragen :)
Gruess
Hallo Lemming
Wie kann ich denn Testen, dass der Benutzer auch tatsächlich ein Bild hoch geladen hat, dass den o. g. Formaten entspricht?
überprüfe den MIME-Type der hochgeladenen Datei. Die erlaubten MIME-Types kannst Du sehr einfach in ein Array packen und dieses in einer Überprüfungsroutine durchlaufen.
Grüsse
tagworx
überprüfe den MIME-Type der hochgeladenen Datei. Die erlaubten MIME-Types kannst Du sehr einfach in ein Array packen und dieses in einer Überprüfungsroutine durchlaufen.
Hallo tagworx,
ich hab's jetzt mal mit checken des mime-types getestet und es kommen ganz unterschiedliche Ergebnisse dabei heraus.
application/octet-stream
image/x-icon
und sogar
text/plain
Gäbe es noch eine andere Möglichkeit? *achselzuck*
Hallo,
Gäbe es noch eine andere Möglichkeit? *achselzuck*
Ja, aber dies ist die sicherste und beste Art dies zu tun.
Und du bist ja auf bestem Wege...
image/x-icon hast du zurückbekommen.
Jetzt überprüft du einfach ob "image/" als MIME TYPE drin ist, wenn ja erlaube es dem benutzer, wenn nein, error message.
Grüsse
image/x-icon hast du zurückbekommen.
Jetzt überprüft du einfach ob "image/" als MIME TYPE drin ist, wenn ja erlaube es dem benutzer, wenn nein, error message.
Aber alle drei waren Bilder. Icon, Jpg und png. :/
echo $begrüßung;
Wie kann ich denn Testen, dass der Benutzer auch tatsächlich ein Bild hoch geladen hat, dass den o. g. Formaten entspricht?
Am sichersten ist es, wenn du versuchst, die Bildgröße mit getimagesize() zu ermitteln. Wenn du ein FALSE statt eines Arrays mit Größeninformationen zurückbekommst ist es kein Bild. Diese Funktion gibt dann auch eine Warnung aus, deren Ausgabe du mit @ unterdrücken kannst.
echo "$verabschiedung $name";