使用自定义 mimetype 表达 sendFile

Express sendFile with custom mimetype

我有一个图像上传系统,其中文件以 uuid 作为名称存储。还有一个数据库条目,用于存储文件的原始 mimetype。
我想使用 express sendFile 函数将文件提供给用户,但不幸的是,它会根据文件扩展名设置 mimetype,通常如下所示:

uploads/b56adbe4-6ab6-47f1-8db3-41eeb43e765c

因为它没有文件扩展名,所以 mimetype 总是设置为 application/octet-stream。那么有没有办法将 mimetype 更改为存储在数据库中的正确 mimetype?以便浏览器可以显示图像?

对于你的情况,我建议你上传带有扩展名的文件,例如:

uploads/b56adbe4-6ab6-47f1-8db3-41eeb43e765c.pdf

可以使用multer配置文件上传然后发送给客户端或者给文件url

我找到了解决方案,只需设置内容类型 header:

            res.sendFile(body.file, { 
                root : "./",
                headers:{
                    "Content-Type":body.mimeType
                }
            }