2011-01-08 4 views
29

Standardmäßig kann es alle Arten von Dateien auswählen, wie Sie es einschränken, so dass es nur .pdf Dateien auswählen kann?Wie kann <input type = "file"> eingeschränkt werden, so dass nur PDF-Dateien ausgewählt werden können?

+0

möglich Duplikat [HTML-Datei Eingabefeld mit begrenzten Dateitypen?] (Http://stackoverflow.com/questions/1240934/html-file-input-field- with-limited-file-types) – marcog

+0

Clientseitig ist dies nicht möglich. AFAIK. Sie müssen auf der @ server-Seite überprüfen, was genau der Benutzer festgelegt hat. – ChristopheD

+0

Überprüfen Sie auch [Dateieingabe 'akzeptieren' Attribut - ist es nützlich?] (Http:// Stackoverflow.com/questions/181214/) für Problemumgehungen. –

Antwort

27

Sie können das Attribut accept in Ihrem Formular verwenden, um dem Browser zu empfehlen, bestimmte Typen einzuschränken. Sie sollten jedoch in Ihrem serverseitigen Code erneut überprüfen, um sicherzustellen, dass. Vertraue niemals dem, was der Client dir schickt.

1

Einfach ausgedrückt: Sie können nicht die einfache HTML und Javascript verwenden. Am ehesten ist es möglich, die Dateierweiterung mithilfe von JavaScript zu testen, bevor Sie das Formular abschicken, und dem Benutzer eine Fehlermeldung anzuzeigen, wenn es sich um eine andere als .pdf handelt. Möglicherweise müssen Sie eine clientseitige Lösung wie Flash-Upload-Steuerelemente verwenden, wenn Sie dies erreichen möchten.

+0

Sie können JavaScript nicht verwenden, um die Datei basierend auf ihrer Erweiterung zu löschen? –

+0

@ Šime Vidas, Ja tatsächlich Javascript konnte verwendet werden, um die Erweiterung der ausgewählten Datei zu testen. –

71

explizite ...

<input type="file" accept="application/pdf" /> 
+0

Warum funktioniert das NICHT, wenn auf dem PC kein Adobe Reader installiert ist? Ist mir heute passiert ... –

Verwandte Themen