Foros del Web » Programando para Internet » PHP »

No se puede mostrar la imagen porque contiene errores

Estas en el tema de No se puede mostrar la imagen porque contiene errores en el foro de PHP en Foros del Web. Hola a todos Al tratar de mostrar una imagen previamente subida a la base de datos, me sale ese echo, he comprobado que la libreria ...
  #1 (permalink)  
Antiguo 14/02/2014, 14:44
 
Fecha de Ingreso: enero-2014
Mensajes: 10
Antigüedad: 10 años, 3 meses
Puntos: 0
No se puede mostrar la imagen porque contiene errores

Hola a todos

Al tratar de mostrar una imagen previamente subida a la base de datos, me sale ese echo, he comprobado que la libreria GD este correctamente en el fichero php.ini.
extension=php_gd2.dll esta descomentada. (uso WIndows, y xampp)

El usuario sube la imagen a traves de un formulario. EL codigo es el siguiente:
Código PHP:
Ver original
  1. <?php
  2. mysql_connect("localhost", "root", "") or die(mysql_error());
  3.  
  4. if (!isset($_FILES["imagen"]) || $_FILES["imagen"]["error"] > 0)
  5. {
  6.     echo "Ha ocurrido un error.";
  7. }
  8. else
  9. {
  10.     $permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
  11.     $limite_kb = 16384;
  12.  
  13.     if (in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb * 1024)
  14.     {
  15.  
  16.         $imagen_temporal = $_FILES['imagen']['tmp_name'];
  17.  
  18.         $tipo = $_FILES['imagen']['type'];
  19.  
  20.         $fp = fopen($imagen_temporal, 'r+b');
  21.         $data = fread($fp, filesize($imagen_temporal));
  22.         fclose($fp);
  23.  
  24.         $data = mysql_escape_string($data);
  25.  
  26.         $resultado = @mysql_query("INSERT INTO imagenes (imagen, tipo_imagen) VALUES ('$data', '$tipo')");
  27.  
  28.         if ($resultado)
  29.         {
  30.             echo "El archivo ha sido copiado exitosamente.";
  31.         }
  32.         else
  33.         {
  34.             echo "Ocurrió algun error al copiar el archivo.";
  35.         }
  36.     }
  37.     else
  38.     {
  39.         echo "Formato de archivo no permitido o excede el tamaño límite de $limite_kb Kbytes.";
  40.     }
  41. }
  42. ?>

La subida la hace sin problemas.

Y el codigo para recuperarla de la base de datos el siguiente:
Código PHP:
Ver original
  1. <?php
  2.     mysql_connect("localhost", "root", "") or die(mysql_error());
  3.     mysql_select_db("open") or die(mysql_error());
  4.    
  5.  
  6.         $consulta = "SELECT imagen, tipo_imagen FROM imagenes WHERE imagen_id='3'";
  7.         $resultado = mysql_query($consulta) or die(mysql_error());
  8.         $datos = mysql_fetch_assoc($resultado);
  9.      
  10.         $imagen = $datos['imagen']; // Datos binarios de la imagen.
  11.         $tipo = $datos['tipo_imagen'];  // Mime Type de la imagen.
  12. que vamos a enviar.
  13.         header("Content-type: $tipo");
  14.         echo $imagen;
  15.  
  16.     ?>

Última edición por cga23; 14/02/2014 a las 15:02
  #2 (permalink)  
Antiguo 14/02/2014, 17:58
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: No se puede mostrar la imagen porque contiene errores

La librería gd no tiene nada que ver ya que no la usas.

Te sugiero que revises el tipo del campo donde almacenas la imagen.

Etiquetas: errores, formulario, mysql, select, sql
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 08:00.