在前端开发中,我们经常要处理文件上传和下载等文件操作。而文件类型的判断和处理是其中的一个重要环节。在 npm 上有一个很方便的包,叫做 pull-identify-filetype,它可以帮助我们快速地获取文件的类型,并进行相应的接下来的处理。本篇文章将从以下几个方面介绍该包的使用方法:
- 安装
- 基本用法
- 进阶用法
- 示例代码
安装
首先要安装该包,可以使用 npm 命令进行安装:
npm install pull-identify-filetype --save
基本用法
使用该包的最基本的用法是将文件的 buffer 传递给 pull-identify-filetype
,然后它会自动识别文件类型,返回一个 Promise,其中包含文件类型的信息(MIME 类型和扩展名)。
下面是一个简单的示例:
const fs = require('fs'); const identifyFiletype = require('pull-identify-filetype'); const buffer = fs.readFileSync('/path/to/your/file'); identifyFiletype(buffer) .then((res) => { console.log(res) // { ext: 'png', mime: 'image/png' } });
这里我们先使用 fs
模块读取文件,然后调用 identifyFiletype
方法,并将文件的 buffer 传递给它。最后,该方法返回一个 Promise,我们可以使用 then
方法获取到文件类型的信息。
进阶用法
pull-identify-filetype
还支持以下进阶用法:
使用文件名获取文件类型
有时候我们可能只有文件名而不是文件的 buffer。这时我们可以使用 identifyFiletype.fromFilename
方法来获取文件类型,如下所示:
const identifyFiletype = require('pull-identify-filetype'); identifyFiletype.fromFilename('/path/to/your/file.png') .then((res) => { console.log(res) // { ext: 'png', mime: 'image/png' } });
使用 URL 获取文件类型
有时候我们的文件是通过 URL 进行获取的,这时我们可以使用 identifyFiletype.fromUrl
方法来获取文件类型,如下所示:
const identifyFiletype = require('pull-identify-filetype'); identifyFiletype.fromUrl('https://example.com/your/file.png') .then((res) => { console.log(res) // { ext: 'png', mime: 'image/png' } });
提前定义支持的文件类型
默认情况下,pull-identify-filetype
会支持以下文件类型:jpg
、png
、gif
、svg
、tif
、bmp
、webp
、mp4
、webm
、ogg
、mp3
、wav
、flac
、pdf
、epub
、zip
、7z
和 rar
。如果我们需要识别其他类型的文件,可以使用 identifyFiletype.extend
方法来进行扩展和定义。
下面是一个简单的示例:
-- -------------------- ---- ------- ----- ---------------- - ---------------------------------- ------------------------- - ---- ------ ----- -------------------- -- - ---- ------- ----- ------------------------------------------------------------------------- - --- ----- ------ - ------------------------------------------ ------------------------ ----------- -- - ---------------- -- - ---- ------ ----- -------------------- - ---展开代码
这里我们先使用 identifyFiletype.extend
方法扩展了支持的文件类型,然后调用 identifyFiletype
方法并将 doc 文件的 buffer 传递给它。最后,该方法将返回 doc 文件的类型信息。
示例代码
综上所述,以下是一个完整的示例代码:
-- -------------------- ---- ------- ----- -- - -------------- ----- ---------------- - ---------------------------------- ------------------------- - ---- ------ ----- -------------------- -- - ---- ------- ----- ------------------------------------------------------------------------- - --- ----- ------ - ------------------------------------------ ------------------------ ----------- -- - ---------------- -- - ---- ------ ----- -------------------- - ---展开代码
这里我们使用 identifyFiletype.extend
方法扩展了支持的文件类型,然后调用 fs
模块读取 doc 文件,并将文件的 buffer 传递给 identifyFiletype
方法。最后,该方法将返回 doc 文件的类型信息。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/pull-out-the-filetype