Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

166
Vistas
La imagen no puede ser una matriz o un objeto

Estoy desarrollando un proyecto que consiste en publicar un post y poder subir una imagen de usuario. Usé JS para Front y NodeJs para Back (Multer para cargar imágenes). Tengo un error al hacer una publicación y cargar una imagen en mi DDBB en Mysql. Creé las publicaciones sin ningún error, pero cuando implementé la capacidad de enviar una imagen, obtuve este error:

violación de cadena: la imagen no puede ser una matriz o un objeto

Código:

 //Here call the action from PostActions const addPost = (body) => dispatch(createPostAction(body)); const userId = props.credentials?.user.id //Formate the picture const formdata = new FormData(); formdata.append('image', image, userId); const user = post.user; const token = post.token; //Create the post addPost({ title, content, image, userName: post.name, lastName: post.lastName, date: new Date(), userId: user.id, token: token, });
 //My route router.post("/", authenticate, fileUpload, async(req, res) => { try { const id = req.body; const image = req.file; res.json(await postControllers.makePost(id, image)) } catch (error) { return res.status(500).json({ message: error.message }); } });
 //My controller async makePost(post) { return Post.create(post); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No recomiendo almacenar imágenes en una base de datos mysql ni en ninguna base de datos en general.

La forma más común de manejar la imagen la carga para almacenar una imagen en un sistema de almacenamiento de archivos como Amazon S3 o Cloudfront, y luego almacena la URL de la imagen que recibe (que generalmente es la ruta del archivo a la imagen y es una cadena), en la base de datos.

Esto se debe tanto a la optimización del rendimiento como del ancho de banda.

Sin embargo, si desea almacenarlo en su base de datos MySQL, debe almacenarlo como un blob. Ex:

 CREATE TABLE 'test'.'pic' ( 'pic' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 'img' LONGBLOB NOT NULL, PRIMARY KEY ('pic') )

Esta infracción de cadena podría deberse a que MySQL espera una cadena (ruta a una imagen) y no está configurado para recibir un tipo de blob.

Para probar, intente pasar una cadena como el valor de la clave de la imagen y vea si la publicación se realiza correctamente.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda