Saltar al contenido

¿Cómo almacenar un archivo con extensión de archivo con multer?

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)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *