Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] Guardar de Base64 a imágenes

Estas en el tema de Guardar de Base64 a imágenes en el foro de Symfony en Foros del Web. Buenos días. A través de una app móvil llaman a una api que estoy creando y le pasan mediante POST varios datos. Algunos de ellos ...
  #1 (permalink)  
Antiguo 20/05/2016, 06:56
 
Fecha de Ingreso: marzo-2007
Mensajes: 59
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta Guardar de Base64 a imágenes

Buenos días.

A través de una app móvil llaman a una api que estoy creando y le pasan mediante POST varios datos. Algunos de ellos son imágenes en Base 64.
La intención es guardar esas imágenes en archivos físicos dentro de una carpeta del servidor y en la base de datos poner la ruta.

He estado mirando el Bundle Sonata y el VichUploader, pero tienen demasiadas cosas para lo que necesito, además de que me han dado errores de configuración que no he sabido solucionar.

¿Alguna ayuda por favor?

Muchas gracias.
  #2 (permalink)  
Antiguo 03/06/2016, 06:27
 
Fecha de Ingreso: marzo-2007
Mensajes: 59
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta Respuesta: Guardar de Base64 a imágenes

Bueno, viendo que no he podido solucionar mis problemas, he decidido hacerlo "a mano".

He creado una sencilla función en el Controller que tiene lo siguiente:

Cita:
public function guardaImB64()
{
$textBase64 = $this->get('request')->request->get('imB64');
$ruta = 'public/img/' . time() . '.jpg';

$ifp = fopen($ruta, 'wb');
$data = explode(',', $textBase64);

if ( fwrite($ifp, base64_decode($data[1])) ) {
fclose($ifp);
echo 'OK';
} else {
echo 'KO';
}
exit();
}
Dicha función la he probado previamente en un servidor sin Symfony y me va perfecta.
Incluso dicha función la he adaptado para guardar un fichero de texto, guardar la cadena en base 64, tanto decodificada como no, y me lo hace correctamente.

El problema es cuando la uso así, tal cual está en Symfony.
Me crea la imagen en la ruta correcta pero cuando la abro no tiene nada, está a 0 bytes.

Seguro que es una tontería pero no se verlo.

¿Alguna sugerencia por favor?
Muchas gracias.
  #3 (permalink)  
Antiguo 07/06/2016, 03:18
 
Fecha de Ingreso: marzo-2007
Mensajes: 59
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta Respuesta: Guardar de Base64 a imágenes

Me autorespondo.

El problema no es que el código estuviera mal, el código está bien.

He probado con 3 imágenes diferentes y con las dos primeras: 3k y 16k ha funcionado bien.

El problema es que la imagen 3a con la que estaba probando es de 612 k y haciendo pruebas con el RESTClient de Firefox he visto que falla porque dice:
"Bad Request
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit."

Por tanto entiendo que es problema del tamaño de la imagen y alguna limitación del servidor.

Pregunta ¿alguien sabe cómo solucionarlo por favor?
Gracias.
  #4 (permalink)  
Antiguo 07/06/2016, 03:43
 
Fecha de Ingreso: marzo-2007
Mensajes: 59
Antigüedad: 17 años, 9 meses
Puntos: 0
Pregunta Respuesta: Guardar de Base64 a imágenes

Vaya, pues parece ser que era un problema del soft que utilizo para hacer las pruebas.

Acabo de probar con otro, el addon RESTClient de Firefox, y me ha funcionado bien.

Marco el tema como solucionado.
  #5 (permalink)  
Antiguo 07/06/2016, 03:44
 
Fecha de Ingreso: marzo-2007
Mensajes: 59
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: Guardar de Base64 a imágenes

Cita:
Iniciado por hamramr Ver Mensaje
Me autorespondo.

El problema no es que el código estuviera mal, el código está bien.

He probado con 3 imágenes diferentes y con las dos primeras: 3k y 16k ha funcionado bien.

El problema es que la imagen 3a con la que estaba probando es de 612 k y haciendo pruebas con el Advanced REST Client he visto que falla porque dice:
"Bad Request
Your browser sent a request that this server could not understand.
Size of a request header field exceeds server limit."

Por tanto entiendo que es problema del tamaño de la imagen y alguna limitación del servidor.

Pregunta ¿alguien sabe cómo solucionarlo por favor?
Gracias.
  #6 (permalink)  
Antiguo 07/06/2016, 07:27
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 11 años, 5 meses
Puntos: 379
Respuesta: Guardar de Base64 a imágenes

Al parecer no es cosa con el servidor http://thewiseaffiliate.com/tutorial...request-error/
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: base64
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:55.