作者: 文章来源:
本文原地址:https://www.mimiwuqi.com/webqianduan/196134.html
正常情况下,文件都有后缀名,例如:xxx.gif, xxxx.avi。但是也存在后缀名的文件,去掉文件的后缀名,并不会影响文件本身的内容。所以在文件的数据中,有其他的方式能够标识出文件的类型。
在编程中,把标识文件格式的常量称为 Magic Number, 原名叫做:File Signatures(文件签名)。
Magic Number 在编程中有以下三类使用:
1. 请求获取文件数据,并转成 Array Buffer
function loadFile(url) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest()
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
resolve(xhr)
}
}
xhr.onerror = reject
xhr.open('GET', url, true)
xhr.responseType = 'arraybuffer'
xhr.send('')
})
}
2. buffer 转 16 进制字符串
function buf2hex(buffer) {
return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).join('')
}
3. 根据 16 进制字符串获取文件头,判断文件类型
function getFileType(url) {
loadFile(url).then(xhr => {
const hex = buf2hex(xhr.response)
console.log(hex)
// todo....
})
}
测试:

以上就是如何判断没有后缀的文件类型方法总结,希望对大家有用。
更多 建站教程 请访问 https://www.mimiwuqi.com/webqianduan/