Найти тип пантомимы, просто посмотрев имя файла, небезопасно. Вы должны найти точный mime-тип файла, прочитав байты подписи, которые помещены в начало содержимого файла.
С помощью этого списка вы можете найти пары подписи-mime-типа.
Я написал образец кода ниже, где вы можете проверить, является ли выбранный файл допустимым файлом jpeg или нет. JPEG имеет простую подпись, если первые 2 байта файла - это 0xFF и 0xD8, вы можете сказать, что этот файл является файлом jpeg. (пожалуйста, проверьте список для более полной информации о подписи).
document.querySelector('input').addEventListener('change', function()
{
var reader = new FileReader();
reader.onload = function()
{
var bytes = new Uint8Array(this.result);
if ((bytes[0] == 0xFF) && (bytes[1] == 0xD8))
console.log("this is a valid jpeg file");
else
console.log("this does not look like a jpeg file");
}
reader.readAsArrayBuffer(this.files[0]);
});
<input type="file">