HTML Input="file" Accept Attribute File Type (CSV)
I was hoping someone can help me out.
I have a file upload object on my page:
<input type="file" ID="fileSelect" />
with the following excel files on my desktop:
I want the file upload to ONLY show .xlsx
, .xls
, & .csv
files.
Using the accept
attribute, I found these content-types took care of .xlsx
& .xls
extensions...
accept
= application/vnd.openxmlformats-officedocument.spreadsheetml.sheet (.XLSX)
accept
= application/vnd.ms-excel (.XLS)
However, I cannot find the correct content-type for an Excel CSV file! Any suggestions?
EXAMPLE: http://jsfiddle.net/LzLcZ/
Well this is embarrassing... I found the solution I was looking for and it couldn't be simpler. I used the following code to get the desired result. Hope this helps someone in the future. Thanks everyone for your help.
<input id="fileSelect" type="file" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
Valid Accept Types:
For CSV files (.csv), use:
<input type="file" accept=".csv" />
For Excel Files 97-2003 (.xls), use:
<input type="file" accept="application/vnd.ms-excel" />
For Excel Files 2007+ (.xlsx), use:
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
For Text Files (.txt) use:
<input type="file" accept="text/plain" />
For Image Files (.png/.jpg/etc), use:
<input type="file" accept="image/*" />
For HTML Files (.htm,.html), use:
<input type="file" accept="text/html" />
For Video Files (.avi, .mpg, .mpeg, .mp4), use:
<input type="file" accept="video/*" />
For Audio Files (.mp3, .wav, etc), use:
<input type="file" accept="audio/*" />
For PDF Files , use:
<input type="file" accept=".pdf" />
DEMO:
http://jsfiddle.net/dirtyd77/LzLcZ/144/
NOTE:
If you are trying to display Excel CSV files ( .csv
), do NOT use:
text/csv
application/csv
text/comma-separated-values
(works in Opera only). If you are trying to display a particular file type (for example, a WAV
or PDF
), then this will almost always work...
<input type="file" accept=".FILETYPE" />
Dom this attribute is very old and not accepted in modern browsers as far as I know, But here is an alternative to it, Try this
<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);" />
I guess it'll help you of course you can change this script according to your needs.
现在你可以使用文件扩展名
<input type="file" ID="fileSelect" accept=".xlsx, .xls, .csv"/>
链接地址: http://www.djcxy.com/p/8206.html
上一篇: 什么应该是Excel文件的响应内容类型