0
function _validMimeType(file) {
var validSignatures = ['ffd8ffe0', '89504e47', '424d3804', '49492a00',
'4d4d002a' , 'd0cf11e0', '504b0304', '74686973', '7b5c7274', '25504446',
'52617221'];
var slice = file.slice(0, 4);
var reader = new FileReader();
reader.onloadend = function(e) {
var view = new DataView(reader.result),
signature;
if(view.byteLength == 8){
signature = view.getUint32(0, false).toString(16) +
view.getUint32(4, false).toString(16);
} else {
signature = view.getUint32(0, false).toString(16);
}
for (var i = 0; i < validSignatures.length; i++) {
if (signature == validSignatures[i].toLowerCase()) {
console.log(signature);
return true;
}
}
return false;
}
reader.readAsArrayBuffer(slice);
}
_validMimeType(file) returns me undefined
当我将文件从上传器传递给_validMimeType(文件)时,它会返回我未定义的文件。等待文件读取器返回true或false
正确的,因为你不是在'_validMimeType'返回任何东西 - 并抢先下一个问题,读https://开头stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call –
因为这不是ajax调用。我需要它在onloadend函数结束时返回true或false。我该怎么做 – Aatif
你不能让'_validMimeType'同步返回一个值,因为它会异步确定返回值......你需要学习使用异步技术(回调,承诺等) - 你读过https ://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call? –