Имам обект за качване на файлове на моята страница:
<input type="file" ID="fileSelect" />
със следните Excel файлове на работния ми плот:
- file1.xlsx
- file1.xls
- file.csv
Искам качването на файлове да показва САМО ***.xlsx,
.xls, &
.csv` файлове.
Използвайки атрибута accept
, открих, че тези типове съдържание се грижат за разширенията .xlsx
& .xls
...
accept
= application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
accept
= application/vnd.ms-excel (.XLS)
Не мога обаче да намеря правилния тип съдържание за CSV файл на Excel! Има ли някакви предложения?
ПРИМЕР: <
>Това е смущаващо... Намерих решението, което търсех, и не можеше да бъде по-просто. Използвах следния код, за да получа желания резултат. Надявам се това да помогне на някого в бъдеще. Благодаря на всички за помощта.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
За CSV файлове (.csv) използвайте:
<input type="file" accept=".csv" />
За файлове Excel 97-2003 (.xls) използвайте:
<input type="file" accept="application/vnd.ms-excel" />
За Файлове на Excel 2007+ (.xlsx), използвайте:
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
За текстови файлове (.txt) използвайте:
<input type="file" accept="text/plain" />
За файлове с изображения (.png/.jpg/т.н.) използвайте:
<input type="file" accept="image/*" />
За HTML файлове (.htm,.html) използвайте:
<input type="file" accept="text/html" />
За Видеофайлове (.avi, .mpg, .mpeg, .mp4) използвайте:
<input type="file" accept="video/*" />
За аудиофайлове (.mp3, .wav и др.) използвайте:
<input type="file" accept="audio/*" />
За PDF файлове използвайте:
<input type="file" accept=".pdf" />
ДЕМО:
ЗАБЕЛЕЖКА:
Ако се опитвате да покажете CSV файлове на Excel (.csv
), не използвайте NOT:
text/csv
application/csv
text/comma-separated-values
(работи само в Opera).Ако се опитвате да покажете специфичен тип файл (например WAV
или PDF
), това почти винаги ще работи...
<input type="file" accept=".FILETYPE" />
Дом този атрибут е много стар и не се приема в съвременните браузъри, доколкото знам, Но тук е алтернатива на това, Опитайте това
<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);" />
Предполагам, че ще ти помогне, разбира се, можеш да промениш този скрипт според нуждите си.
Използвах text/comma-separated-values
за CSV mime-type в атрибута accept и той работи добре в Opera. Опитах с text/csv
без успех.
Някои други MIME-типове за CSV, ако предложените не работят:
Източник: http://filext.com/file-extension/CSV