Wie bekomme ich eine html5-Datei input akzeptiert nur bestimmte Datei-Typen konsequent in allen Browsern?

Laut diese Antwort auf Stack Overflow, können wir die accept Attribut eines <input type="file" /> filtern akzeptiert Eingabe wie folgt:

accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"

Jedoch, wie Sie sehen können läuft das einfach-snippet unten, Chrome 43.0.etwas scheint einfach ignorieren dieser Konfiguration, es ist zwar völlig klar Firefox 39.0.

Als ich den Wechsel zu einem mehr stumpfen Ansatz, mit:

accept=".xls, .xlsx"

... das funktioniert in Chrome aber macht Firefox etwas verwirrt, akzeptieren nur die Dateien mit der .xlsx Erweiterung.


Wenn man bedenkt, dass dies ist wahrscheinlich sehr verbreitet und basic, ich muss etwas fehlt: wo bin ich kniff? Wie bekomme ich eine html5-Datei-input-zu empfehlen, nur .xls und .xlsx Dateien konsequent in allen Browsern?

Hier ist ein Codeausschnitt illustriert mein Problem (zusammen mit einem JSFiddle link in Fall würden Sie wollen, mit ihm hantieren).

HTML:

Accepts application/vnd.ms-excel and the likes:<br />
<label for="file1">File input</label>
<input type="file" name="file1" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"/>
<hr />
Accepts .xls and .xlsx:<br />
<label for="file2">File input</label>
<input type="file" name="file2" accept=".xls, .xlsx"/>

  • Sieht aus wie die meisten der großen Browser implementieren Sie nun diese Funktion korrekt. Getestet habe ich beide Tasten in Chrome 36, Firefox 42, und Internet Explorer 11, und Sie funktioniert einwandfrei in allen von Ihnen. Schauen hier für mehr info.
  • Mmmh ich glaube, ich sollte haben wissen, ich bin mit einem Linux-system (Ubuntu). Obwohl, meine Kunden auch wissen, daß Firefox nicht herausfiltern .xls Dateien in beiden Versionen, mit einer up-to-date-FF auf einem Windows-10-Umgebung (keine Daten auf Chrome aber).
  • Getestet habe ich auf Win 7 und Vista. Leider, mein Win 10 box hat nur IE11 und Edge (will nicht an andere stellen, auf die es noch). Interessanterweise sind die Filter scheinen nicht zu funktionieren im Rand, trotz allem, was die caniuse - Seite sagt. Sie funktionieren im IE11, obwohl, unabhängig von OS. Ich habe bemerkt, dass der erste button scheint nur zu funktionieren, wenn der MIME-Typen registriert sind.
  • Beide arbeiten für mich, Windows 7, Firefox, 42 und 44.
  • Sie haben eine gute und ausführliche Antwort zu diesem Beitrag : html-input-file-accept-attribute-file-type +1 falls es hilft^^
  • Potenzielle Duplikat von stackoverflow.com/questions/181214/...

InformationsquelleAutor ccjmne | 2015-11-23
Schreibe einen Kommentar