Ich habe ein Dateiupload-Objekt auf meiner Seite:
<input type="file" ID="fileSelect" />
mit den folgenden Exceldateien auf meinem Desktop:
- file1.xlsx
- file1.xls
- datei.csv
Ich möchte, dass der Datei-Upload NUR .xlsx
, .xls
, & .csv
Dateien anzeigt.
Mit dem Attribut accept
habe ich herausgefunden, dass diese Inhaltstypen für die Erweiterungen .xlsx
& .xls
ausreichen...
accept
= application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
akzeptieren
= anwendung/vnd.ms-excel (.XLS)
Ich kann jedoch den richtigen Inhaltstyp für eine Excel-CSV-Datei nicht finden! Irgendwelche Vorschläge?
BEISPIEL: <
>Nun, das ist peinlich... Ich habe die Lösung gefunden, nach der ich gesucht habe und es könnte nicht einfacher sein. Ich habe den folgenden Code verwendet, um das gewünschte Ergebnis zu erzielen. Hoffentlich hilft das jemandem in der Zukunft. Vielen Dank an alle für Ihre Hilfe.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
Für CSV-Dateien (.csv), verwenden Sie:
<input type="file" accept=".csv" />
Für Excel-Dateien 97-2003 (.xls), verwenden Sie:
<input type="file" accept="application/vnd.ms-excel" />
Für Excel-Dateien 2007+ (.xlsx), verwenden Sie:
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
Für Textdateien (.txt) verwenden Sie:
<input type="file" accept="text/plain" />
Für Bilddateien (.png/.jpg/etc), verwenden Sie:
<input type="file" accept="image/*" />
Für HTML-Dateien (.htm,.html), verwenden Sie:
<input type="file" accept="text/html" />
Für Videodateien (.avi, .mpg, .mpeg, .mp4), verwenden Sie:
<input type="file" accept="video/*" />
Für Audiodateien (.mp3, .wav, etc), verwenden Sie:
<input type="file" accept="audio/*" />
Für PDF-Dateien, verwenden Sie:
<input type="file" accept=".pdf" />
DEMO:
HINWEIS:
Wenn Sie versuchen, Excel-CSV-Dateien (.csv
) anzuzeigen, verwenden Sie NICHT:
text/csv
Anwendung/csv
text/comma-separated-values
(funktioniert nur in Opera).Wenn Sie versuchen, einen bestimmten Dateityp anzuzeigen (z.B. ein WAV
oder PDF
), dann wird dies fast immer funktionieren...
<input type="file" accept=".FILETYPE" />
Dom dieses Attribut ist sehr alt und nicht in modernen Browsern akzeptiert, soweit ich weiß, aber hier ist eine Alternative zu ihm, versuchen Sie diese
<script type="text/javascript" language="javascript">
function checkfile(sender) {
var validExts = new Array(".xlsx", ".xls", ".csv");
var fileExt = sender.value;
fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
if (validExts.indexOf(fileExt) < 0) {
alert("Invalid file selected, valid files are of " +
validExts.toString() + " types.");
return false;
}
else return true;
}
</script>
<input type="file" id="file" onchange="checkfile(this);" />
Ich denke, es wird Ihnen helfen, natürlich können Sie dieses Skript nach Ihren Bedürfnissen ändern.
Ich habe "text/comma-separated-values" für den CSV-Mime-Type im accept-Attribut verwendet und es funktioniert gut in Opera. Ich habe "text/csv" ohne Erfolg ausprobiert.
Einige andere MIME-Typen für CSV, wenn die vorgeschlagenen nicht funktionieren: