multer如何确定file.mimetype的值
How does multer determine the value of file.mimetype
Multer's file
对象包含一个 mimetype
值。文档将其描述为 "Mime type of the file",但未提供其他详细信息。
该字段的值是如何确定的?它只是客户端提供的Content-Type:
(很容易被欺骗)还是上传的文件以某种方式评估可以帮助确定真实文件类型?
通过跟踪源代码,它来自 content-type
header.
我是这样追踪的:
make-middleware.js in Multer:其中有一个 busboy
流 object 侦听 file
事件并将 mimetype
作为回调函数的输入参数之一. mimetype
附加到用户获得的 req.files
。
busboy:busboy
实例是用请求 headers 创建的,由它自己的 parseHeaders
和 parseParams
函数解析。您可以在 content-type
header.
上发现它正在做一些事情
进一步跟踪,你会发现它applies the Dicer object监听headers
事件并使用解析的mimeType向busboy
发送file
事件。
Multer's file
对象包含一个 mimetype
值。文档将其描述为 "Mime type of the file",但未提供其他详细信息。
该字段的值是如何确定的?它只是客户端提供的Content-Type:
(很容易被欺骗)还是上传的文件以某种方式评估可以帮助确定真实文件类型?
通过跟踪源代码,它来自 content-type
header.
我是这样追踪的:
make-middleware.js in Multer:其中有一个 busboy
流 object 侦听 file
事件并将 mimetype
作为回调函数的输入参数之一. mimetype
附加到用户获得的 req.files
。
busboy:busboy
实例是用请求 headers 创建的,由它自己的 parseHeaders
和 parseParams
函数解析。您可以在 content-type
header.
进一步跟踪,你会发现它applies the Dicer object监听headers
事件并使用解析的mimeType向busboy
发送file
事件。