在前端开发中,文件上传是一个不可避免的需求,而正确地处理上传文件的类型则更是必须的。file-type-es5是一个能够识别并返回上传文件类型的npm包,使用它可以方便地判断文件类型,从而进行后续处理。
安装
首先,我们需要安装file-type-es5:
npm install file-type-es5
使用
使用file-type-es5十分简单。只需要将上传的文件传入fileType方法中,即可得到一个包含文件类型信息的对象。
示例代码:
const fileType = require('file-type-es5'); const fs = require('fs'); const buffer = fs.readFileSync('test.gif'); const fileInfo = fileType(buffer); console.log(fileInfo); // 输出:{ ext: 'gif', mime: 'image/gif' }
原理
file-type-es5的识别原理是根据一定的字节规律判断文件类型。它会对上传的文件进行二进制读取,读取前几个字节并根据其值判断出文件的类型。
具体规则如下:
- PNG:前8个字节为89 50 4e 47 0d 0a 1a 0a
- JPEG:前2个字节为ff d8
- GIF:前6个字节为47 49 46 38 39 61 或 47 49 46 38 37 61
- BMP:前2个字节为42 4d
- TIFF:前4个字节为49 49 2a 00 或4d 4d 00 2a
- WEBP:前4个字节为52 49 46 46,并且后4个字节为57 45 42 50
- MP4:前12个字节为00 00 00 14 66 74 79 70 69 73 6f 6d 或 00 00 00 18 66 74 79 70 33 67 70 35,其中ftypisom对应前者,ftypmp42对应后者。
当然,file-type-es5还提供了丰富的文件类型识别规则,上述只是其中的一部分。
深入了解
要想更深入地了解file-type-es5,你可以去参阅它的GitHub仓库。在该仓库中,你可以看到关于该npm包的更多细节信息,包括使用示例、支持的文件类型列表等等。
结语
使用file-type-es5,我们可以很容易地对上传文件的类型进行判断和处理。相信对于进行图片上传等操作的前端程序员而言,这是一个非常实用的npm包。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600562a581e8991b448dfe1f