ファイル タイプが自分のマシンで 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
}
}
}
}
console.log(file)
IDでファイルを取得した直後に挿入すると、ブラウザが吐き出します:
name: "emails to send to.csv"
size: 137011
type: "application/vnd.ms-excel"
webkitRelativePath: ""
とりわけ、私の同僚が戻ってくるのに対して
name: "emails to send to.csv"
size: 137011
type: ""
webkitRelativePath: ""
自分の PC では同じファイルのタイプが返されるのに、同僚の PC では返されないのはなぜですか?