繁体   English   中英

Node js:如何获取文件签名头而不是mime-type?

[英]Node js: How to get file signature headers instead of mime-type?

我为我的节点js项目下载了这个模块,它似乎在一定程度上工作正常。 如果你是console.log(mime.lookup(pathToFile)); 它返回文件具有的正确文件类型。 问题是它检查文件扩展名以获取文件类型,而不检查文件的前几个字节(文件签名头)以实际获得正确的文件类型。 所以,如果我有一个.png图像,它会返回image/png但如果我只是将文件扩展名更改为类似.mp4则认为该文件是一个video/mp4 有没有办法安全地检查它,以便某些用户不只是上传对服务器有害的东西? 也许另一个模块? 谢谢!

尝试使用文件类型

检测Buffer / Uint8Array的文件类型

通过检查缓冲区的幻数来检测文件类型。

const readChunk = require('read-chunk'); // npm install read-chunk 
const fileType = require('file-type');
const buffer = readChunk.sync('unicorn.png', 0, 262);

fileType(buffer);
//=> {ext: 'png', mime: 'image/png'} 

它需要读取前262个字节。 检查页面上支持的扩展名

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM