资讯专栏INFORMATION COLUMN

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

CarterLi / 3231人阅读

摘要:通常,我们的程序通过文件后缀名检测类型,这是最直接简洁的方式。原理可以直接检测一个数据流,得到这个数据的内容文件类型。的原理是检测文件数据的。通常情况下,一些知名的文件类型,在其文件开头的几个字节用来标志其文件类型,这几个字节就叫做。

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

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

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

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

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

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

file-type 原理

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

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

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/sindresorh...

https://en.wikipedia.org/wiki...

欢迎关注公众号:梁兴臣

每天了解一个NPM库,一年后成为Node.js高手

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/90627.html

相关文章

  • NPM酷库047:ini,解析INI配置文件

    摘要:酷库,每天两分钟,了解一个流行库。下方就是一个类型的配置文件库在中,我们使用库来解析文件参考资料 NPM酷库,每天两分钟,了解一个流行NPM库。· 最近几期我们都在研究各种数据文件类型,包括JSON5、YAML、CSON等,相对于JSON,这些格式能够更加易于人类编写和理解,所以更适合做配置文件,今天我们继续学习如何解析Windows系统上常用的*.ini配置文件。 下方就是一个INI...

    flyer_dev 评论0 收藏0
  • NPM酷库:glob,通配符匹配文件

    摘要:酷库,每天两分钟,了解一个流行库。经常,我们的程序需要对磁盘文件进行管理,就需要读取磁盘上的文件列表,然后可能会需要判断文件夹或文件名,还可能需要递归扫描子目录。今天我们要了解的库,就是专门用来扫描磁盘文件,并返回我们需要的文件类型。 NPM酷库,每天两分钟,了解一个流行NPM库。 经常,我们的程序需要对磁盘文件进行管理,就需要读取磁盘上的文件列表,然后可能会需要判断文件夹或文件名,还...

    verano 评论0 收藏0
  • NPM酷库042:ajv,JSON 模式验证

    摘要:酷库,每天两分钟,了解一个流行库。比如需要满足那些属性,每个属性都是什么类型的,这些条件称之为数据模式验证。在对数据的模式验证领域有专门的标准,叫做。就是按照标准声明一个模式对象,然后使用模式验证工具去验证目标数据。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在NPM酷库041中,我们学习了如何用validator库来验证字符串是否是Email、URL等,在开发中,除了字符串,...

    lavnFan 评论0 收藏0
  • NPM酷库050:xmlbuilder,创建XML文件

    摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...

    baukh789 评论0 收藏0
  • NPM酷库050:xmlbuilder,创建XML文件

    摘要:酷库,每天两分钟,了解一个流行库。在前几期酷库中,我们介绍了操作等数据格式文件,在外部系统接口中,我们还会经常遇到格式的接口协议。本期,我们先来了解,用来创建格式文档。 NPM酷库,每天两分钟,了解一个流行NPM库。· 在前几期NPM酷库中,我们介绍了Node.js操作JSON5、YAML、CSON、CSV等数据格式文件,在外部系统接口中,我们还会经常遇到XML格式的接口协议。从本期开...

    taoszu 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<