javascript - multer如何确定file.mimetype的值

标签 javascript node.js multer

Multer's file 对象包含一个 mimetype 值。该文档将其描述为“文件的 Mime 类型”,但没有提供其他详细信息。

该字段的值是如何确定的?它只是客户端提供的 Content-Type:(很容易被欺骗),还是以某种方式评估上传的文件以帮助确定真实的文件类型?

最佳答案

通过追踪源代码,它来自于content-type header。

以下是我的跟踪方式:

make-middleware.js in Multer :其中有一个 busboy 流对象监听 file 事件,并将 mimetype 作为回调函数的输入参数之一。 mimetype 附加到用户获取的 req.files 中。

busboy :busboy 实例是使用其自己的 parseHeadersparseParams 函数解析的请求 header 创建的。您可以发现它正在 content-type header 上执行某些操作。

进一步追踪,你会发现applies the Dicer object监听 headers 事件并使用解析的 mimeType 向 busboy 发出 file 事件。

关于javascript - multer如何确定file.mimetype的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41815691/

相关文章:

javascript - 让 bootstrap 4 中表单提交按钮的 5 秒加载微调器正常工作

javascript - 这个我到现在都没见过的 JavaScript 语法,它到底做了什么?

javascript - 读取设置文件并在 node.js 中评估

node.js - 如何在没有命令行的情况下运行 Nodejs 服务器

node.js - 无法使用 Multer、React、Node.js、Sequelize、PostgreSQL 访问上传的照片

javascript - multer npm : TypeError: Cannot read property 'path' of undefined

javascript - 为什么我的 Redux store 应该是可序列化的?

javascript - 复数在 Sequelize 中如何工作?

node.js - 无法使用 phantomJS 获取 iframe 的元素

angularjs - Amazon S3,GET 请求被禁止?