christian: Input type=file einschränken mit accept

hi

folgenes klappt nicht. was mache ich falsch?

<input type=file name="userfile" accept="image/gif" >

er hat im open dialog immer noch die ansicht auf "alle dateien" eingestellt.

grüße christian

  1. Moin!

    folgenes klappt nicht. was mache ich falsch?

    <input type=file name="userfile" accept="image/gif" >

    er hat im open dialog immer noch die ansicht auf "alle dateien" eingestellt.

    Du versuchst etwas, was stark davon abhängt, ob der Browser es wirklich kann.

    Nur mal zur Verdeutlichung: Der Mimetyp "image/gif" bedeutet keinesfalls, daß nur noch Dateien mit der Endung ".gif" angezeigt werden müssen. Die Dateiendung und der Mimetyp haben im Prinzip nichts miteinander zu tun. Man kann auch PHP-Skripte benutzen, um GIF-Dateien zu erzeugen, die URL würde in diesem Fall auf ".php" enden - trotzdem entsteht ein GIF-Bild mit GIF-Mimetyp im GIF-Datenformat.

    Außerdem kannst du den Benutzer kaum daran hindern, anstatt des gewünschten GIF-Bildes doch irgendwelche anderen Dateien hochzuladen. Wenn du mit der Accept-Angabe irgendwelche Hoffnungen verknüpfst - laß sie sofort wieder fahren. Gegen falsche Dateien hilft nur die Überprüfung dieser Dateien auf dem Server auf korrekten Inhalt.

    - Sven Rautenberg

  2. <input type=file name="userfile" accept="image/gif" >

    Ja, hängt von der Browserunterstützung ab.
    Aber wenn Du den Upload hinterher mit einem PHP-Script
    empfängst, kannst Du dort nochmal den MIME-Type prüfen
    (Variable in Deinem Fall: $userfile_type)
    und dann nur "image/gif" zulassen.

    Tip: ergaenze auch die Zeile
    <input type="hidden" name=MAX_FILE_SIZE value="200000">
    Das verhindert den Upload von Riesendateien (hier ueber 200k)

    Gruesse Dirk

    1. Hi,

      Tip: ergaenze auch die Zeile
      <input type="hidden" name=MAX_FILE_SIZE value="200000">
      Das verhindert den Upload von Riesendateien (hier ueber 200k)

      sagen wir mal: Es sollte dies tun ... wenn es denn bloß
      mal Browser gäbe, die das nicht einfach nur ignorieren.

      Viele Grüße
      <img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael