1

我在追踪为什么 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: ""

为什么我的电脑上的同一个文件带回一个类型,而我同事的电脑上却没有?

4

0 回答 0