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

filetype支持的文件类型
用来检测Buffer/Uint8Array/ArrayBuffer的文件类型,通过检查缓冲区的magic number(幻数)来检测文件类型。 这个包用于检测基于二进制的文件格式,而不是像txt,csv,svg等文件。
Magic number,即幻数,它可以用来标记文件或者协议的格式,很多文件都有幻数标志来表明该文件的格式。例如Windows操作系统可执行程序的开头标记一般为MZ,这是一种源于磁盘操作系统时代的格式。
Install如何使用
npm install File-type
- 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.浏览器中使用
api
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}参考地址 https://github.com/sindresorhus/file-type
Copyright © 2024 有趣生活 All Rights Reserve吉ICP备19000289号-5 TXT地图HTML地图XML地图