如何找到没有扩展名的图像的 MIME 类型?
how to find MIME type of a image which has no extension?
我正在使用Node.js服务器,并且正在将图像保存到没有文件扩展名的服务器上,(图像名称只是一个数字)有什么办法可以找出这种图像的MIME类型?我需要它,因为浏览器正在下载图像而不是在浏览器中打开它。
我正在使用 gm(GraphicsMagick) 包将文本写入图像并将其保存到没有扩展名的文件夹中。当我通过 res.sendFile('project root/uploads/cache/1')
发送这条路径时,浏览器不理解它的图像并下载它,我希望它在同一个选项卡中打开它
我也试过设置 image/*
,浏览器只是下载图片,我不确定这种 API 是否可以在 React-Native 应用程序上正常使用。
假设您使用 multer 作为文件上传中间件:
Router.js
multer = require('multer'),
storage = multer.diskStorage({
// Configuring multer to upload towards the public/uploads map
destination: function(req, file, cb) {
cb(null, 'public/uploads')
},
// Rename the file, so we can create a reference to save in the database.
filename: function(req, file, cb) {
var ext = file.originalname.split('.')
cb(null, 'upload-' + Date.now() + '.' + ext[ext.length - 1])
}
})
// Assign the configured storage to the upload.
upload = multer({
storage: storage,
})
我将我的存储配置为将所有图像(默认情况下 multer 所做的)重命名为上传 - Date.now() 和 ext 数组中的扩展名。这样,文件将以扩展名保存,并自动给出以下结果:
一种方法,已经在库中为您完成(我没有在 Node 上花费太多时间):创建一个文件签名到扩展名的映射,并用前几个十六进制数字查询它上传的文件。
文件签名 (a.k.a "magic numbers") 及其扩展名的良好来源:
https://en.wikipedia.org/wiki/List_of_file_signatures
我正在使用Node.js服务器,并且正在将图像保存到没有文件扩展名的服务器上,(图像名称只是一个数字)有什么办法可以找出这种图像的MIME类型?我需要它,因为浏览器正在下载图像而不是在浏览器中打开它。
我正在使用 gm(GraphicsMagick) 包将文本写入图像并将其保存到没有扩展名的文件夹中。当我通过 res.sendFile('project root/uploads/cache/1')
发送这条路径时,浏览器不理解它的图像并下载它,我希望它在同一个选项卡中打开它
我也试过设置 image/*
,浏览器只是下载图片,我不确定这种 API 是否可以在 React-Native 应用程序上正常使用。
假设您使用 multer 作为文件上传中间件:
Router.js
multer = require('multer'),
storage = multer.diskStorage({
// Configuring multer to upload towards the public/uploads map
destination: function(req, file, cb) {
cb(null, 'public/uploads')
},
// Rename the file, so we can create a reference to save in the database.
filename: function(req, file, cb) {
var ext = file.originalname.split('.')
cb(null, 'upload-' + Date.now() + '.' + ext[ext.length - 1])
}
})
// Assign the configured storage to the upload.
upload = multer({
storage: storage,
})
我将我的存储配置为将所有图像(默认情况下 multer 所做的)重命名为上传 - Date.now() 和 ext 数组中的扩展名。这样,文件将以扩展名保存,并自动给出以下结果:
一种方法,已经在库中为您完成(我没有在 Node 上花费太多时间):创建一个文件签名到扩展名的映射,并用前几个十六进制数字查询它上传的文件。
文件签名 (a.k.a "magic numbers") 及其扩展名的良好来源: https://en.wikipedia.org/wiki/List_of_file_signatures