Multer's file
对象包含一个 mimetype
值。该文档将其描述为“文件的 Mime 类型”,但没有提供其他详细信息。
该字段的值是如何确定的?它只是客户端提供的 Content-Type:
(很容易被欺骗),还是以某种方式评估上传的文件以帮助确定真实的文件类型?
最佳答案
通过追踪源代码,它来自于content-type
header。
以下是我的跟踪方式:
make-middleware.js in Multer :其中有一个 busboy
流对象监听 file
事件,并将 mimetype
作为回调函数的输入参数之一。 mimetype
附加到用户获取的 req.files
中。
busboy :busboy
实例是使用其自己的 parseHeaders
和 parseParams
函数解析的请求 header 创建的。您可以发现它正在 content-type
header 上执行某些操作。
进一步追踪,你会发现applies the Dicer object监听 headers
事件并使用解析的 mimeType 向 busboy
发出 file
事件。
关于javascript - multer如何确定file.mimetype的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41815691/