371 Stimmen

Datei-Eingabe-Attribut "accept" - ist es nützlich?

Die Implementierung eines Datei-Uploads unter html ist ziemlich einfach, aber ich habe gerade bemerkt, dass es ein "accept"-Attribut gibt, das zu der <input type="file" ...> Tag.

Ist dieses Attribut nützlich, um das Hochladen von Dateien auf Bilder usw. zu beschränken? Wie ist es am besten zu verwenden?

Oder gibt es eine Möglichkeit, Dateitypen zu begrenzen, vorzugsweise im Dateidialog, für ein html-Dateieingabe-Tag?

6voto

PhiLho Punkte 39496

Wenn der Browser dieses Attribut verwendet, dann nur als Hilfe für den Benutzer, damit er nicht eine Multi-Megabyte-Datei hochlädt, nur um zu sehen, dass sie vom Server abgelehnt wird...
Dasselbe gilt für die <input type="hidden" name="MAX_FILE_SIZE" value="100000"> Tag: Wenn der Browser es verwendet, wird er die Datei nicht senden, sondern einen Fehler mit der Meldung UPLOAD_ERR_FORM_SIZE (2) Fehler in PHP (ich weiß nicht, wie es in anderen Sprachen gehandhabt wird).
Beachten Sie, dass es sich um Hilfen für die Benutzer . Natürlich muss der Server immer den Typ und die Größe der Datei auf seiner Seite überprüfen: Es ist leicht, diese Werte auf der Client-Seite zu verfälschen.

0voto

Jakub Mendyk Punkte 428

Damals, im Jahr 2008, war das nicht wichtig, weil es noch keine mobilen Betriebssysteme gab, aber jetzt ist es sehr wichtig.

Wenn Sie akzeptierte Mime-Typen festlegen, wird dem Android-Benutzer beispielsweise ein Systemdialog mit Anwendungen zur Verfügung gestellt, die ihm den Inhalt des Mime-Typs liefern können, der bei der Dateieingabe akzeptiert wird, was großartig ist, da die Navigation durch Dateien im Dateiexplorer auf mobilen Geräten langsam und oft anstrengend ist.

Ein wichtiger Punkt ist, dass einige mobile Browser (basierend auf der Android-Version von Chrome 36 und Chrome Beta 37) die App-Filterung über Erweiterungen und mehrere Mime-Typen nicht unterstützen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X