Objeto de archivo que se envía desde la interfaz usando reaccionar y formData. He hecho manualmente que el objeto de archivo se vea como ...
Después de cargar un archivo, obtengo el objeto en multer y express-upload
console.log(req.files.productImages)
[{ "name": "galaxy-1.jpeg", "data": { "$binary": "/9j/4AAQSkZJRgABAQAAAQABAAD/2FasgasadagzxvADFCaBGRRXSADa0" }, "size": 2895, "encoding": "7bit", "tempFilePath": "", "truncated": false, "mimetype": "image/jpeg", "md5": "b7192406a75b765dd0582daa4807ca71" }]Quiero obtener un objeto de archivo con etiqueta: valor.
ejemplo:
[{ "label": "oxygen blue", "name": "galaxy-1.jpeg", "data": { "$binary": "/9j/4AAQSkZJRgABAQAAAQABAAD/2FasgasadagzxvADFCaBGRRXSADa0" }, "size": 2895, "encoding": "7bit", "tempFilePath": "", "truncated": false, "mimetype": "image/jpeg", "md5": "b7192406a75b765dd0582daa4807ca71" }]Por favor, ayúdame a lograr esto.
Afaik, esto no es posible ya que multer recibirá el archivo en sí mismo sin ninguna propiedad personalizada adicional y/o cualquier campo de texto presente en la solicitud de datos de formulario. Pero... multer le permite acceder tanto a archivos como a campos de texto.
Entonces, suponiendo que su solicitud se vea así:
curl --location --request POST 'localhost:3000/test-upload' \ --form 'files=@"/path/to/file1"' \ --form 'label="custom-label-file1"' \ --form 'label="custom-label-file2"' \ --form 'files=@"/path/to/file2"'y este código del lado del servidor:
app.post('/test', upload.array('files'), function (req, res, next) { console.log(req.files) console.log(req.body) res.send(...); })Luego se registrará lo siguiente en la consola:
Uploaded files: [ { fieldname: 'files', originalname: 'file1', encoding: '7bit', mimetype: 'text/plain', ... }, { fieldname: 'files', originalname: 'file2', encoding: '7bit', mimetype: 'application/pdf', ... } ] Uploaded text fields: { label: [ 'custom-label-file1', 'custom-label-file2] }De acuerdo con este problema de github, multer conserva el orden, por lo que podría usar el índice correspondiente de los archivos para encontrar sus etiquetas.