我有一个文件上传对象在我的页面上:

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

在我的桌面上有以下excel文件:

file1.xlsx file1.xls file.csv

我想上传的文件只显示.xlsx, .xls, & .csv文件。

使用accept属性,我发现这些内容类型负责.xlsx和.xls扩展…

接受应用程序/ vnd.openxmlformats-officedocument.spreadsheetml =。表(.XLSX) 接受=应用程序/盾。ms excel (xls)

但是,我找不到Excel CSV文件的正确内容类型!有什么建议吗?

例如:http://jsfiddle.net/LzLcZ/


当前回答

我在accept属性中使用了文本/逗号分隔的CSV mime-type值,它在Opera中工作得很好。尝试了text/csv,但运气不好。

如果建议的不工作,其他一些mime类型用于CSV:

文本/逗号分隔值 文本/ csv 应用程序/ csv 应用程序/ excel 应用程序/ vnd.ms-excel 应用程序/ vnd.msexcel 文本/ anytext

来源:http://filext.com/file-extension/CSV

其他回答

Dom这个属性非常古老,据我所知,在现代浏览器中不被接受,但这里有一个替代方案,试试这个

<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);" />

我想它会帮助你当然你可以根据你的需要更改这个脚本。

除了最上面的答案之外,例如,CSV文件在macOS下报告为文本/纯文本,但报告为应用程序/vnd。ms-excel。 所以我用这个:

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

经过我的测试,在【macOS 10.15.7 Catalina】上,【Dom / Rikin Patel】的答案无法正常识别[.xlsx]文件。

我个人总结了大部分现有答案的做法,并通过了个人测试。总结以下答案:

Accept =".csv, .xls, .xlsx, text/csv, application/csv, " 文本/逗号分隔值,应用程序/csv,应用程序/excel, 应用程序/盾。mssexcel,文本/任何文本,应用程序/vnd。ms excel, 应用程序/ vnd.openxmlformats-officedocument.spreadsheetml.sheet”

您可以使用以下接受类型

<input id="upload_file" accept="image/png,image/jpg,image/jpeg,.doc, .docx,.xls,.xlsx,.pdf,.csv," name="upload_file" type="file"/> .

我在accept属性中使用了文本/逗号分隔的CSV mime-type值,它在Opera中工作得很好。尝试了text/csv,但运气不好。

如果建议的不工作,其他一些mime类型用于CSV:

文本/逗号分隔值 文本/ csv 应用程序/ csv 应用程序/ excel 应用程序/ vnd.ms-excel 应用程序/ vnd.msexcel 文本/ anytext

来源:http://filext.com/file-extension/CSV