HTML Input= "file" Accept atrybut Typ pliku (CSV)
Miałem nadzieję, że ktoś mi pomoże.
Mam na swojej stronie obiekt uploadu pliku:
<input type="file" ID="fileSelect" />
Z następującymi plikami Excela na moim pulpicie:
- file1.xlsx
- file1.xls
- plik.csv
Chcę, aby plik został przesłany do tylko pokaż .xlsx
, .xls
, & .csv
pliki.
Używając atrybutu accept
, znalazłem te typy treści .xlsx
& .xls
rozszerzenia...
accept
= application / vnd.openxmlformats-officedocument.spreadsheetml.arkusz (.XLSX)
accept
= application / vnd. ms-excel (.XLS)
Jednak nie mogę znaleźć odpowiedniego typu zawartości dla pliku CSV Excel! Jakieś sugestie?
Przykład: http://jsfiddle.net/LzLcZ/
9 answers
To żenujące... Znalazłem rozwiązanie, którego szukałem i nie mogło być prostsze. Użyłem poniższego kodu, aby uzyskać pożądany rezultat. Mam nadzieję, że to pomoże komuś w przyszłości. Dziękuję wszystkim za pomoc.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
Valid Accept Types:
For CSV files (.csv), użycie:
<input type="file" accept=".csv" />
Dla Plików Excel 97-2003 (.xls), użycie:
<input type="file" accept="application/vnd.ms-excel" />
Dla Plików Excel 2007+ (.xlsx), użycie:
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
Dla Plików Tekstowych (.txt) użycie:
<input type="file" accept="text/plain" />
Dla Plików Graficznych (..png/.jpg / etc), użycie:
<input type="file" accept="image/*" />
Dla plików HTML (.htm,html), użyj:
<input type="file" accept="text/html" />
Dla Plików Wideo (.avi,mpg,mpeg,. mp4), użycie:
<input type="file" accept="video/*" />
Dla plików Audio (. mp3, .wav, itp.), użycie:
<input type="file" accept="audio/*" />
Dla plików PDF , użycie:
<input type="file" accept=".pdf" />
DEMO:
http://jsfiddle.net/dirtyd77/LzLcZ/144/
Uwaga:
Jeśli próbujesz wyświetlić pliki Excel CSV (.csv
), wykonaj Nie użycie:
text/csv
application/csv
-
text/comma-separated-values
(działa tylko w Operze ).
Jeśli próbujesz wyświetlić konkretny typ pliku (na przykład WAV
lub PDF
), to prawie zawsze będzie to praca...
<input type="file" accept=".FILETYPE" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-03-30 05:15:08
W dzisiejszych czasach możesz po prostu użyć rozszerzenia pliku
<input type="file" ID="fileSelect" accept=".xlsx, .xls, .csv"/>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-19 20:21:48
Dom ten atrybut jest bardzo stary i nie jest akceptowany w nowoczesnych przeglądarkach, o ile wiem, ale tutaj jest alternatywa dla niego, spróbuj tego
<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);" />
Myślę, że to ci pomoże oczywiście możesz zmienić ten skrypt zgodnie z Twoimi potrzebami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-06 17:54:04
Użyłem text/comma-separated-values
do CSV mime-type w atrybucie accept i działa dobrze w Operze. Próbowałem text/csv
bez powodzenia.
Niektóre inne typy MIME dla CSV, jeśli sugerowane nie działają:
- wartości oddzielone przecinkami
- tekst / csv
- application / csv
- application / excel
- application / vnd. ms-excel
- application / vnd.msexcel
- tekst / anytext
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-25 13:59:18
To mi nie wyszło pod Safari 10:
<input type="file" accept=".csv" />
Musiałem napisać to zamiast:
<input type="file" accept="text/csv" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-04 08:01:16
Możesz znać poprawny typ zawartości dla dowolnego pliku, wykonując następujące czynności:
1) wybierz interesujący plik,
2) i uruchom w konsoli to:
console.log($('.file-input')[0].files[0].type);
Możesz również ustawić atrybut "multiple" dla Twojego wejścia, aby sprawdzić typ zawartości dla kilku plików naraz i wykonać następny:
for (var i = 0; i < $('.file-input')[0].files.length; i++){
console.log($('.file-input')[0].files[i].type);
}
Atrybut accept ma pewne problemy z wieloma atrybutami i nie działa poprawnie w tym przypadku.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-08 11:57:26
Zmodyfikowałem rozwiązanie @yogi. Dodatek polega na tym, że gdy plik ma nieprawidłowy format, zresetuję wartość elementu wejściowego.
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;
}
Mam wbudowaną weryfikację niestandardową, ponieważ w oknie open file użytkownik nadal może wybrać opcje "wszystkie pliki (' * ' )", niezależnie od tego, czy jawnie ustawiłem atrybut accept w elemencie wejściowym.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-30 17:24:29
Teraz możesz użyć nowego atrybutu HTML5 input validation pattern=".+\.(xlsx|xls|csv)"
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-15 10:20:22
Użycie regex byłoby szybsze
function checkIsExcel(file) {
if ((!/.*\.xlsx$/.test(file.name)) && (!/.*\.xls$/.test(file.name)) && (!/.*\.csv$/.test(file.name))) {
return false;
}
return true;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-27 03:18:47