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:

  • file1.xlsx
  • file1.xls
  • file.csv
  • 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文件的响应内容类型

    下一篇: HTML输入=“文件”接受属性文件类型(CSV)