Configuración requerida de MySQL para cargar imagen grande en campo LONGBLOB

Cómo estás. En mi última consulta te pregunté sobre un problema que he venido teniendo para mostrar con PHP el contenido de una imagen almacenada en un campo tipo LongBlob en BD MySQL - funciona bien en local pero no en el sitio de producción. Pues bien, ya tengo claro que el problema es porque no se está almacenando bien la imagen en la BD:

Cuando intento cargar en la BD de Producción una imagen de sólo 14 KB, el resultado es que se carga con un tamaño de sólo 4 bytes y, por tanto, resultada almacenada una imagen corrupta. Esto lo hago entrando a Editar el registro específico y luego doy clic en el botón "Examinar" del campo Longblob y así busco la imagen y la cargo, y para guardar el cambio, por último doy clic en el botón "Continuar". Mi usuario de PhpMyAdmin no tiene todos los privilegios, así que le pedí al proveedor del hosting que me le asignara el máximo valor para el parámetro max_allowed_packet, el cual ya veo que está en 1.073.741.824 bytes; sin embargo el problema continúa igual. En la BD local descubrí un problema similar y le incrementé el valor para este parámetro y ya me deja cargar bien en ella imágenes más grandes.

Creería que el problema se podría solucionar cambiando la configuración de algún(os) otro(es) parámetro(es), pero no se cuál(es).

¿Tú me podrías decir qué otro(es) parámetro(es) estará(n) afectando y qué valor(es) debería(n) tener?. ¿O si no es cuestión de parámetro entonces cuál sería la solución?. Muy agradecido de antemano por tu ayuda.

Nota: el almacenamiento de las imágenes en la BD no lo estoy haciendo por programa sino manualmente accediendo directamente a la BD a través de MySQL.

1 Respuesta

Respuesta
1

He estado averiguando tu problema y estas bien encaminado con respecto a la configuración del motor mysql. Te dejo como referencia de mi "investigación" el siguiente link.

<a>http://blog.vortexbird.com/2011/07/07/como-incrementar-el-max_allowed_packets-en-mysql/#.U7VmcbHb4dg</a>

Pero la última parte no la entendí, ¿cómo estas cargando la imagen si no es por programa?

Gracias. Te aclaro: en la "Nota" que coloqué al final, l que digo es que las imágenes no las estoy almacenando en la tabla de la BD mediante algún programa PHP que haga esto (por lo que este programa aún no ha sido desarrollado -- se hará en estos póximos días); sino que las estoy almacenando es entrando al PhpMyAdmin y haciendo lo siguiente, que es la única opción que veo con esta herramienta:

> Entro a la tabla correspondiente

> Edito el registro específico

> Doy clic en el botón "Examinar" del campo Longblob

> Busco la imagen y la cargo

> (para guardar el cambio en el registro) Doy clic en el botón "Continuar".

--------- // ---------

Entrando al link que me enviaste me he enterado que existe otro parámetro, 'net_buffer_length', el cual determina el tamaño con el cual se inicializa la imagen cargada en el campo, pero este tiene el valor de 16.384 bytes, el cual es mayor al tamaño de la imagen que he intentado cargar. Sin embargo le pedí al proveedor del Hosting el favor de que me incremente al máximo (1.048.576 bytes) el valor de este parámetro - estoy a la espera de que lo haga para probar nuevamente.

--------- // ---------

Espero que ojalá pudieras averiguarte y me pudieras decir qué podría estar afectando. Te lo agradecería mucho.

Sinceramente desconozco como trabaja internamente el mysql. Pero podrías intentar hacer un upload básico para ver si a tu aplicación le falla este trabajo con la base de datos o en caso contrario arroja algún error que nos pueda dar luces de que está pasando en ese ambiente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas