Solución:
Tengo una solución para agregar la extensión adecuada de archivos. Si utiliza path
módulo de nodo
var multer = require('multer');
var path = require('path')
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/')
},
filename: function (req, file, cb) {
cb(null, Date.now() + path.extname(file.originalname)) //Appending extension
}
})
var upload = multer({ storage: storage });
De los documentos: “Multer no agregará ninguna extensión de archivo, su función debería devolver un nombre de archivo completo con una extensión de archivo”.
A continuación, le indicamos cómo puede agregar la extensión:
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/')
},
filename: function (req, file, cb) {
cb(null, Date.now() + '.jpg') //Appending .jpg
}
})
var upload = multer({ storage: storage });
Recomendaría usar el mimetype
propiedad para determinar la extensión. Por ejemplo:
filename: function (req, file, cb) {
console.log(file.mimetype); //Will return something like: image/jpeg
Más información: https://github.com/expressjs/multer
Obtuve el archivo con la extensión de file.mimetype
. Divido el tipo MIME y obtengo la extensión del archivo. Pruebe la siguiente función.
let storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads')
},
filename: function (req, file, cb) {
let extArray = file.mimetype.split("https://foroayuda.es/");
let extension = extArray[extArray.length - 1];
cb(null, file.fieldname + '-' + Date.now()+ '.' +extension)
}
})
const upload = multer({ storage: storage })
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)