Am un upload de fișiere obiect de pe pagina mea:
<input type="file" ID="fileSelect" />
cu următoarele fișiere excel de pe desktop-ul meu:
- file1.xlsx
- file1.xls
- fișierul.csv
Vreau fișier de încărcare a DOAR show .xlsx
, .xls
, & `.csv fișiere.
Folosind "accepta" atribut, am găsit aceste conținutul-tipuri avut grijă de.xlsx&
.xls` extensii...
"accepta" = application/vnd.openxmlformats-officedocument.spreadsheetml.foaie (.XLSX)
"accepta" = application/vnd.ms-excel (.XLS)
Cu toate acestea, eu nu pot găsi corect content-type pentru un Excel fișier CSV! Orice sugestii?
EXEMPLU: <
>Ei bine, acest lucru este jenant... am gasit solutia am fost în căutarea pentru și nu putea't fi mai simplu. Am folosit urmatorul cod pentru a obține rezultatul dorit. Sper că acest lucru ajută cineva în viitor. Multumesc tuturor pentru ajutor.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
Pentru CSV fișiere (.csv), utilizare:
<input type="file" accept=".csv" />
Pentru Fișiere Excel 97-2003 (.xls), utilizare:
<input type="file" accept="application/vnd.ms-excel" />
Pentru Fișiere Excel 2007+ (.xlsx), utilizare:
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
Pentru Fișiere Text (.txt) utilizare:
<input type="file" accept="text/plain" />
Pentru Fișiere Imagine (.png/.jpg/etc), utilizare:
<input type="file" accept="image/*" />
Pentru Fișiere HTML (.htm,.html), utilizare:
<input type="file" accept="text/html" />
Pentru Fișiere Video (.avi, .mpg, .mpeg, .mp4), utilizați:
<input type="file" accept="video/*" />
Pentru Fișiere Audio (.mp3, .wav, etc), utilizați:
<input type="file" accept="audio/*" />
Pentru Fișiere PDF, utilizați:
<input type="file" accept=".pdf" />
DEMO:
NOTĂ:
Dacă sunteți încercarea de a afișa Excel CSV fișiere (.csv
), nu NU utilizare:
text/csv
text/separate prin virgulă valori
(funcționează în Operă numai).Dacă sunteți încercarea de a afișa un anumit tip de fișier (de exemplu, un WAV sau "PDF"), atunci acest lucru va fi aproape întotdeauna de lucru...
<input type="file" accept=".FILETYPE" />
Dom acest atribut este foarte vechi și nu a acceptat în browserele moderne, în măsura în care știu, Dar aici este o alternativă la aceasta, Încercați acest lucru
<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);" />
Cred că'll ajuta, desigur, puteți schimba acest script în funcție de nevoile dumneavoastră.
Eu am folosit text/separate prin virgulă valori pentru CSV mime-tip în accepte atribut și funcționează bine în Operă. A încercat
text/csv` fără noroc.
Altele MIME-Tipuri de CSV dacă sugerat nu funcționează:
Puteți ști conținutul corect-tip pentru orice fișier de a face doar următoarele:
Selectați interesat de fișiere,
Și a alerga în consola asta:
console.log($('.file-input')[0].files[0].type);
Puteți seta, de asemenea, atribut "mai multe" pentru dvs. de intrare pentru a verifica conținutul-tip pentru mai multe fișiere la un moment dat și de a face următoarele:
for (var i = 0; i < $('.file-input')[0].files.length; i++){
console.log($('.file-input')[0].files[i].type);
}
Atributul accept are unele probleme cu mai multe atribute și nu't funcționează corect în acest caz.
Am modificat soluția de @yogi. În plus este că, atunci când fișierul este de format incorect am resetat element de intrare de valoare.
function checkFile(sender, validExts) {
var fileExt = sender.value;
fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
if (validExts.indexOf(fileExt) < 0 && fileExt != "") {
alert("Invalid file selected, valid files are of " +
validExts.toString() + " types.");
$(sender).val("");
return false;
}
else return true;
}
Am personalizat verificarea construirii, pentru că în fișier deschis fereastra utilizatorul poate alege în continuare opțiuni "Toate fișierele ('*')", indiferent dacă am setat explicit accepta atribut în element de intrare.