HTML Input = "failas" Priimti atributo failo tipą (CSV)

Mano puslapyje turiu failo įkėlimo objektą:

 <input type="file" ID="fileSelect" /> 

darbalaukyje su šiais Excel failais:

  1. file1.xlsx
  2. file1.xls
  3. file.csv

Noriu, kad failas atsisiunčiamas TIK, kad būtų rodomi .xlsx , .xls ir .csv failai.

Naudojant atributą „ accept , sužinojau, kad šie turinio tipai rūpinosi .xlsx ir .xls plėtiniais ...

accept = application / vnd.openxmlformats-officedocument.spreadsheetml.s. (.XLSX)

accept = taikymas /vnd.ms-Excel (.XLS)

Tačiau negaliu rasti „Excel CSV“ failo turinio tipo! Bet kokie pasiūlymai?

PAVYZDYS: http://jsfiddle.net/LzLcZ/

360
06 авг. Dom yra nustatytas 06 rug. 2012-08-06 20:18 '12 8:18 pm 2012-08-06 20:18
@ 9 atsakymai

Na, ji painioja ... Radau sprendimą, kurio ieškojau, ir tai negalėjo būti lengviau. Norėdami gauti norimą rezultatą, naudoju šį kodą. Tikimės, kad tai padės kažkas ateityje. Dėkojame visiems už pagalbą.

 <input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" /> 

Galiojantys priėmimo tipai:

CSV (.csv) failams naudokite:

 <input type="file" accept=".csv" /> 

Excel 97-2003 failams (.xls) naudokite:

 <input type="file" accept="application/vnd.ms-excel" /> 

Excel 2007 +“ (.xlsx) failams naudokite:

 <input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /> 

Tekstinių failų (.txt) naudojimui:

 <input type="file" accept="text/plain" /> 

Vaizdo failams (.png / .jpg / etc):

 <input type="file" accept="image/*" /> 

Naudojant HTML failus (.htm, .html):

 <input type="file" accept="text/html" /> 

Vaizdo failams (.avi, .mpg, .mpeg, .mp4) naudokite:

 <input type="file" accept="video/*" /> 

Garso failams (.mp3, .wav ir kt.) Naudokite:

 <input type="file" accept="audio/*" /> 

Naudojant PDF failus :

 <input type="file" accept=".pdf" /> 

DEMO:
http://jsfiddle.net/dirtyd77/LzLcZ/144/


PASTABA:

Jei bandote rodyti „Excel Excel“ CSV failus ( .csv ), naudokite NOT :

  • text/csv
  • application/csv
  • text/comma-separated-values (veikia tik operoje).

Jei bandote rodyti tam tikrą failo tipą (pvz., WAV arba PDF ), tai beveik visada veiks ...

  <input type="file" accept=".FILETYPE" /> 
950
06 авг. atsakymas duotas Dom 06 rug. 2012-08-06 22:45 '12, 10:45 val. 2012-08-06 22:45

Šiomis dienomis galite tiesiog naudoti failo plėtinį

border=0
 <input type="file" ID="fileSelect" accept=".xlsx, .xls, .csv"/> 
69
19 сент. Atsakymą pateikė Big Money . 2017-09-19 23:21 '17, 11:21 pm 2017-09-19 23:21

Dom šis atributas yra labai senas ir nėra priimtas šiuolaikinėse naršyklėse, kiek aš žinau, bet čia yra alternatyva, išbandykite.

 <script type="text/javascript" > 

Manau, kad tai padės jums, žinoma, pakeisti šį scenarijų pagal savo poreikius.

33
06 авг. atsakymas duotas jogui 06 rug. 2012-08-06 20:54 '12, 08:54 pm 2012-08-06 20:54

CSV mime tipo text/comma-separated-values naudoju atribute „priimti“ ir jis veikia gerai „Opera“. Išbandė text/csv be sėkmės.

Kai kurie kiti „CSV“ „MIME“ tipai, jei pasiūlytieji neveikia:

  • kableliais atskirtas tekstas / vertybės
  • text / csv
  • app / csv
  • programa / Excel
  • application / vnd.ms-excel
  • programa /vnd.msexcel
  • Tekstas / bet koks tekstas

Šaltinis: http://filext.com/file-extension/CSV

8
05 марта '13 в 23:16 2013-03-05 23:16 atsakymą pateikė „ Jysponsored“ kovo 5 d. 13 d. 23:16 2013-03-05 23:16

„Safari 10“ tai man neveikė:

 <input type="file" accept=".csv" /> 

Turėjau tai parašyti:

 <input type="file" accept="text/csv" /> 
6
04 апр. atsakymas pateikiamas Trojan 04 balandžio. 2017-04-04 11:01 '17 at 11:01 2017-04-04 11:01

Bet kurio failo turinio tipą galite rasti tiesiog atlikdami šiuos veiksmus:

1) Pasirinkite norimą failą

2) ir paleiskite konsolę:

 console.log($('.file-input')[0].files[0].type); 

Taip pat galite nustatyti „įvesties“ atributą „kelis“, kad patikrintumėte kelių failų turinį vienu metu ir atlikite šiuos veiksmus:

 for (var i = 0; i < $('.file-input')[0].files.length; i++){ console.log($('.file-input')[0].files[i].type); } 

Atributo atributas turi keletą problemų su keliais atributais ir šiuo atveju neveikia teisingai.

3
19 сент. atsakymas duotas opiumui rugsėjo 19 d 2014-09-19 06:58 '14 at 6:58 2014-09-19 06:58

Pakeitiau @yogi sprendimą. Be to, kai failas yra neteisingas, iš naujo nustatau įvesties elemento vertę.

 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; } 

Turiu pasirinktinį patikrinimą, nes atidarytame failų >

1
10 авг. Atsakymas, kurį pateikė RenatoIvancic 10 rug . 2014-08-10 19:35 '14, 19:35, 2014-08-10 19:35

Dabar galite naudoti naują įvesties patvirtinimo atributą html5 pattern=".+\.(xlsx|xls|csv)" .

0
06 нояб. atsakymas pateikiamas iiic . 2013-11-06 16:45 '13, 16:45, 2013-11-06 16:45

naudojant įprastą išraišką bus greičiau

  function checkIsExcel(file) { if ((!/.*\.xlsx$/.test(file.name))  (!/.*\.xls$/.test(file.name))  (!/.*\.csv$/.test(file.name))) { return false; } return true; } 
-1
27 июля '17 в 6:18 2017-07-27 06:18 atsakymas duotas spuogai liepos 27 d. 17:18 6:18 2017-07-27 06:18