我在追踪为什么 JS 文件 api 在我的机器上识别文件类型时遇到了一些麻烦,但我的同事机器却没有。
我们都在运行 Chrome 28 并且有一个标准的 CSV,如下所示:
xxx@bbb.com
yyy@ccc.ru
aaa@dddcom
我有一个看起来像这样的表格:
<form id="form1" enctype="multipart/form-data" method="post" action="http://example.com/content/email/">
<label for="binFileToUpload">CSV to import</label>
<input type="file" name="binFileToUpload" id="binFileToUpload" onchange="fileSelected();"/>
</form>
我的 JS 看起来像:
function fileSelected() {
var file = document.getElementById('binFileToUpload').files[0];
if (file) {
var fileSize = 0;
if (file.size < 1024 * 1024 * 4){
if(file.type != 'application/vnd.ms-excel' && file.type != 'text/comma-separated-values' && file.type != 'text/csv' && file.type != 'application/csv' && file.type != 'text/anytext'){
var obj = {};
obj.SMESSAGE = "File type not supported. Please only upload XLS or CSV files.";
errFunction(obj);
document.getElementById('fileType').innerHTML = 'Type: ' + file.type;
document.getElementById('buttonupload').disabled = true;
} else {
// do some stuff
}
}
}
}
当我在通过 id 获取文件后插入 a 时console.log(file)
,我的浏览器会吐回:
name: "emails to send to.csv"
size: 137011
type: "application/vnd.ms-excel"
webkitRelativePath: ""
除其他外,而我的同事回来了
name: "emails to send to.csv"
size: 137011
type: ""
webkitRelativePath: ""
为什么我的电脑上的同一个文件带回一个类型,而我同事的电脑上却没有?