检测文件类型而不考虑文件扩展名(NodeJS)

Detect file type irrespective of file extension (NodeJS)

将 NodeJS 与 multer 结合使用,是否可以检测文件的真实文件类型,而不考虑其扩展名?

场景:您只允许上传某些文件类型(.jpeg.docx)用户获取文件 pictures.rar,将其重命名为 pictures.docx 并继续上传文件。您的服务器只需要文档和图像文件,因此在尝试阅读 docx 时会崩溃。

显然这是用户错误,但有没有办法检测到并停止继续?

您可以使用一个模块来检测文件类型,但如果服务器上没有它,您将无法检查它。所以在上传文件后你测试它的类型。

文件类型的模块 nodjs:https://www.npmjs.com/package/file-type

您可以使用文件元数据 npm 包来获取文件元数据并从那里提取 mime 类型 https://www.npmjs.com/package/file-metadata