首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NPM酷库:file-type,检测文件类型

NPM酷库,每天两分钟,了解一个流行NPM库。

通常,我们的程序通过文件后缀名检测类型,这是最直接简洁的方式。但是,在一些情况下,直接通过后缀名检测文件类型,不太合适或行不通,比如:

只得到了数据流,但是没有文件名

被重命名去掉后缀储存的文件

文件后缀和实际内容不匹配或后缀名不受信任

这些问题,在脉冲云的代码仓库和文件管理服务的开发中经常遇到,在脉冲云的开发中,我们使用file-type来判断文件类型。

file-type 原理

file-type 可以直接检测一个Buffer数据流,得到这个Buffer数据的内容(文件)类型。

file-type 的原理是检测文件/数据的Magic Number。通常情况下,一些知名的文件类型,在其文件开头的几个字节用来标志其文件类型,这几个字节就叫做 Magic Number。比如,PDF文件开头的几个字节是 (hex: )。

file-type 现在已经支持的文件类型列表:

jpg png gif webp flif cr2 tif bmp jxr psd zip tar rar gz bz2 7z dmg mp4 m4v mid mkv webm mov avi wmv mpg mp3 m4a ogg opus flac wav amr pdf epub mobi exe swf rtf woff woff2 eot ttf otf ico flv ps xz sqlite nes crx xpi cab deb ar rpm Z lz msi mxf mts wasm blend bpg docx pptx xlsx 3gp jp2 jpm jpx mj2 aif odt ods odp xml

参考资料

https://github.com/sindresorhus/file-type

https://en.wikipedia.org/wiki/Magicnumber(programming)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180103G0JEQW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券