Jeg har et filopplastingsobjekt på siden min:
<input type="file" ID="fileSelect" />
med følgende Excel-filer på skrivebordet mitt:
- fil1.xlsx
- fil1.xls
- file.csv
Jeg vil at filopplastingen til BARE skal vise .xlsx
, .xls
og .csv
-filer.
Ved å bruke attributtet accept
fant jeg ut at disse innholdstypene tok seg av filtypene .xlsx
og .xls
...
accept
= application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
accept
= application/vnd.ms-excel (.XLS)
Jeg finner imidlertid ikke riktig innholdstype for en Excel CSV-fil! Noen forslag?
EKSEMPEL: <
>Dette er pinlig... Jeg fant løsningen jeg lette etter, og det kunne ikke vært enklere. Jeg brukte følgende kode for å få ønsket resultat. Håper dette hjelper noen i fremtiden. Takk alle sammen for hjelpen.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
For CSV-filer (.csv), bruk:
<input type="file" accept=".csv" />
For Excel-filer 97-2003 (.xls), bruk:
<input type="file" accept="application/vnd.ms-excel" />
For Excel-filer 2007+ (.xlsx), bruk:
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
For Tekstfiler (.txt), bruk:
<input type="file" accept="text/plain" />
For Bildefiler (.png/.jpg/etc), bruk:
<input type="file" accept="image/*" />
For HTML-filer (.htm, .html), bruk:
<input type="file" accept="text/html" />
For Videofiler (.avi, .mpg, .mpeg, .mp4), bruk:
<input type="file" accept="video/*" />
For Lydfiler (.mp3, .wav osv.), bruk:
<input type="file" accept="audio/*" />
For PDF-filer, bruk:
<input type="file" accept=".pdf" />
DEMO:
NOTAT:
Hvis du prøver å vise Excel CSV-filer (.csv
), må du IKKE bruke:
text/csv
(tekst/csv)application/csv
(applikasjon/csv
)text/comma-separated-values
(fungerer bare i Opera).Hvis du prøver å vise en spesiell filtype (for eksempel en WAV
eller PDF
), vil dette nesten alltid fungere...
<input type="file" accept=".FILETYPE" />
Dom dette attributtet er veldig gammelt og ikke akseptert i moderne nettlesere så vidt jeg vet, Men her er et alternativ til det, Prøv dette
<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);" />
Jeg antar det' vil hjelpe deg selvfølgelig kan du endre dette skriptet i henhold til dine behov.
Jeg har brukt text/comma-separated-values
for CSV mime-type i accept-attributtet, og det fungerer fint i Opera. Prøvde text/csv
uten hell.
Noen andre MIME-typer for CSV hvis de foreslåtte ikke fungerer: