javascript html5文件api获取文件类型

javascript html5文件api获取文件类型,javascript,html,file-upload,Javascript,Html,File Upload,我在追踪为什么一个文件类型是由JS文件api在我的机器上重新编码,而不是由我的同事在我的机器上重新编码时遇到了一些问题 我们都在运行Chrome 28,并且有一个标准的CSV,看起来像: xxx@bbb.com yyy@ccc.ru aaa@dddcom function fileSelected() { var file = document.getElementById('binFileToUpload').files[0]; if (file) { va

我在追踪为什么一个文件类型是由JS文件api在我的机器上重新编码,而不是由我的同事在我的机器上重新编码时遇到了一些问题

我们都在运行Chrome 28,并且有一个标准的CSV,看起来像:

xxx@bbb.com
yyy@ccc.ru
aaa@dddcom
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
              }
         }
    }
}
我有一个表单如下所示:

<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>
除此之外,我的同事回来了

name: "emails to send to.csv"
size: 137011
type: ""
webkitRelativePath: ""

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

如果您看到不同的行为,那么这两台机器之间肯定有一些显著的差异。您确定两个实例中的文件相同吗?你怎么确定?你们都在使用同一个操作系统吗?我们都在运行Windows 7。他有微软Office 2000和我的微软Office 2010。他用电子邮件把文件从他的机器上发给我,我把它保存到我机器上的一个文件夹里。我猜这些文件实际上是不一样的。我会仔细看看这两个副本。mime类型是从操作系统中提取的。您的同事在其计算机上的文件关联与您的不同。。。也就是说,谁在乎mime类型是什么,数据都是一样的。@dandavis你能引用你的来源吗?我认为你是不对的。我相信大多数(如果不是所有的话)用户代理只是将文件扩展名与MIME类型的硬编码表匹配。
name: "emails to send to.csv"
size: 137011
type: ""
webkitRelativePath: ""