使用自定义 mimetype 表达 sendFile
Posted
技术标签:
【中文标题】使用自定义 mimetype 表达 sendFile【英文标题】:Express sendFile with custom mimetype 【发布时间】:2021-10-09 15:11:46 【问题描述】:我有一个图像上传系统,其中文件以 uuid 作为名称存储。还有一个数据库条目,用于存储文件的原始 mimetype。 我想使用 express sendFile 函数将文件提供给用户,但不幸的是,它会根据文件扩展名设置 mimetype,通常如下所示:
uploads/b56adbe4-6ab6-47f1-8db3-41eeb43e765c
因为它没有文件扩展名,所以 mimetype 始终设置为 application/octet-stream。那么有没有办法将 mimetype 更改为存储在数据库中的正确类型?让浏览器可以显示图片?
【问题讨论】:
【参考方案1】:在你的情况下,我建议你上传带有扩展名的文件,例如:
uploads/b56adbe4-6ab6-47f1-8db3-41eeb43e765c.pdf
您可以使用multer配置文件上传,然后您可以将其发送给客户端或提供文件url
【讨论】:
【参考方案2】:我找到了解决办法,只需设置内容类型标题:
res.sendFile(body.file,
root : "./",
headers:
"Content-Type":body.mimeType
【讨论】:
以上是关于使用自定义 mimetype 表达 sendFile的主要内容,如果未能解决你的问题,请参考以下文章
php代码片段: sendFile/videoStream/sendEmail/phpexcel/ffmpeg/zip