有趣生活

当前位置:首页>科技>filetype支持的文件类型分享一个用来检测各种文件类型的库file-type

filetype支持的文件类型分享一个用来检测各种文件类型的库file-type

发布时间:2026-07-25阅读(1)

导读用来检测Buffer/Uint8Array/ArrayBuffer的文件类型,通过检查缓冲区的magicnumber(幻数)来检测文件类型这个包用于检测基于....

用来检测Buffer/Uint8Array/ArrayBuffer的文件类型,通过检查缓冲区的magic number(幻数)来检测文件类型 这个包用于检测基于二进制的文件格式,而不是像txt,csv,svg等文件 ,接下来我们就来聊聊关于filetype支持的文件类型?以下内容大家不妨参考一二希望能帮到您!

filetype支持的文件类型(分享一个用来检测各种文件类型的库file-type)

filetype支持的文件类型

用来检测Buffer/Uint8Array/ArrayBuffer的文件类型,通过检查缓冲区的magic number(幻数)来检测文件类型。 这个包用于检测基于二进制的文件格式,而不是像txt,csv,svg等文件。

Magic number,即幻数,它可以用来标记文件或者协议的格式,很多文件都有幻数标志来表明该文件的格式。例如Windows操作系统可执行程序的开头标记一般为MZ,这是一种源于磁盘操作系统时代的格式。

Install

npm install File-type

如何使用
  1. Node.js 中使用

从文件中确定文件类型:

import {fileTypeFromFile} from file-type;console.log(await fileTypeFromFile(Unicorn.png));//=> {ext: png, mime: image/png}

从缓冲区确定文件类型,缓冲区可能是文件开头的一部分:

import {fileTypeFromBuffer} from file-type;import {readChunk} from read-chunk;const buffer = await readChunk(Unicorn.png, {length: 4100});console.log(await fileTypeFromBuffer(buffer));//=> {ext: png, mime: image/png}

从文件流中确定文件类型:

import fs from node:fs;import {fileTypeFromStream} from file-type;const stream = fs.createReadStream(Unicorn.mp4);console.log(await fileTypeFromStream(stream));//=> {ext: mp4, mime: video/mp4}

stream 方法也可用于从远程位置读取:

import got from got;import {fileTypeFromStream} from file-type;const url = https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg;const stream = got.stream(url);console.log(await fileTypeFromStream(stream));//=> {ext: jpg, mime: image/jpeg}

另一个流示例:

import stream from node:stream;import fs from node:fs;import crypto from node:crypto;import {fileTypeStream} from file-type;const read = fs.createReadStream(encrypted.enc);const decipher = crypto.createDecipheriv(alg, key, iv);const streamWithFileType = await fileTypeStream(stream.pipeline(read, decipher));console.log(streamWithFileType.fileType);//=> {ext: mov, mime: video/quicktime}const write = fs.createWriteStream(`decrypted.${streamWithFileType.fileType.ext}`);streamWithFileType.pipe(write);

2.浏览器中使用

import {fileTypeFromStream} from file-type;const url = https://upload.wikimedia.org/wikipedia/en/a/a9/Example.jpg;const response = await fetch(url);const fileType = await fileTypeFromStream(response.body);console.log(fileType);//=> {ext: jpg, mime: image/jpeg}

api

参考地址 https://github.com/sindresorhus/file-type

TAGS标签:  filetype  支持  文件  类型  分享  filetype支持

Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图