Foros del Web » Programando para Internet » PHP »

error con png al subir a base de datos

Estas en el tema de error con png al subir a base de datos en el foro de PHP en Foros del Web. Muy buenas amig@s tengo este codigo para subir fotos y reescalarlas, y luego grabar datos en la base de datos. si subo jpg o gif ...
  #1 (permalink)  
Antiguo 05/09/2014, 02:46
 
Fecha de Ingreso: septiembre-2010
Ubicación: Reino Independiente Suizo_Andaluz (RISA)
Mensajes: 221
Antigüedad: 13 años, 7 meses
Puntos: 24
error con png al subir a base de datos

Muy buenas amig@s
tengo este codigo para subir fotos y reescalarlas, y luego grabar datos en la base de datos.
si subo jpg o gif todo funciona bien, pero si lo intento con png siempre me da SERVER INTERNAL ERROR, la foto me la sube correctamente, pero no me graba nada en la base de datos
Código PHP:
Ver original
  1. [CODE]<?php
  2. $output_dir = "fotos/";
  3. if(isset($_FILES["myfile"]))
  4. {
  5.     $ret = array();
  6.  
  7.     $error =$_FILES["myfile"]["error"];
  8.     //You need to handle  both cases
  9.     //If Any browser does not support serializing of multiple files using FormData()
  10.     if(!is_array($_FILES["myfile"]["name"])) //single file
  11.     {
  12.         $fileName = $_FILES["myfile"]["name"];
  13.         $ruta_imagen = $output_dir.$fileName;
  14.         move_uploaded_file($_FILES['myfile']['tmp_name'], $ruta_imagen);
  15.         $miniatura_ancho_maximo = 1200;
  16.         $miniatura_alto_maximo = 1200;
  17.        
  18.         $info_imagen = getimagesize($ruta_imagen);
  19.         $imagen_ancho = $info_imagen[0];
  20.         $imagen_alto = $info_imagen[1];
  21.         $imagen_tipo = $info_imagen['mime'];
  22.         $proporcion_imagen = $imagen_ancho / $imagen_alto;
  23.         $proporcion_miniatura = $miniatura_ancho_maximo / $miniatura_alto_maximo;
  24.  
  25.         if ( $proporcion_imagen > $proporcion_miniatura ){
  26.             $miniatura_ancho = $miniatura_ancho_maximo;
  27.             $miniatura_alto = $miniatura_ancho_maximo / $proporcion_imagen;
  28.         } else if ( $proporcion_imagen < $proporcion_miniatura ){
  29.             $miniatura_ancho = $miniatura_ancho_maximo * $proporcion_imagen;
  30.             $miniatura_alto = $miniatura_alto_maximo;
  31.         } else {
  32.             $miniatura_ancho = $miniatura_ancho_maximo;
  33.             $miniatura_alto = $miniatura_alto_maximo;
  34.         }
  35.  
  36.         switch ( $imagen_tipo ){
  37.             case "image/jpg":
  38.             case "image/jpeg":
  39.                 $imagen = imagecreatefromjpeg( $ruta_imagen );
  40.                 break;
  41.             case "image/png":
  42.                 $imagen = imagecreatefrompng( $ruta_imagen );
  43.                 break;
  44.             case "image/gif":
  45.                 $imagen = imagecreatefromgif( $ruta_imagen );
  46.                 break;
  47.         }
  48.  
  49.         $lienzo = imagecreatetruecolor( $miniatura_ancho, $miniatura_alto );
  50.  
  51.         imagecopyresampled($lienzo, $imagen, 0, 0, 0, 0, $miniatura_ancho, $miniatura_alto, $imagen_ancho, $imagen_alto);
  52.  
  53.         imagejpeg($lienzo, $ruta_imagen , 85);
  54.    
  55.         $ret[]= $fileName;
  56.         $nombre = "pepe";
  57.  
  58.      
  59.      
  60.  
  61.    // Insertar la noticia en la Base de Datos
  62.    $conexion = mysql_connect ("", "", "")
  63.          or die ("No se puede conectar con el servidor");
  64.       mysql_select_db ("")
  65.          or die ("No se puede seleccionar la base de datos");
  66.  
  67.    $instruccion = "insert into TABLA (usuario, imagen, fh_registro) values ('" .$nombre. "' , '" .$fileName. "' , DATE_ADD(CURDATE(), INTERVAL 0 DAY))";  //strtotime("+1 week")    DATE_ADD(CURDATE(), INTERVAL $can_dias DAY)
  68.     $consulta = mysql_query ($instruccion, $conexion)  or die ("Fallo en la consulta");
  69.      
  70.    
  71.     mysql_close ($conexion);
  72.    
  73.     }
  74.     echo json_encode($ret);
  75.    
  76.  }
  77.  ?>[/CODE]
por mas vueltas que le doy no consigo encontrar el problemas asi que recurro a vosotros a ver si alguien ve algo raro que podria ser el causante del fallo.
gracias de antemano
__________________
kolectivo grafico deNA
www.kgdena.com
  #2 (permalink)  
Antiguo 05/09/2014, 07:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: error con png al subir a base de datos

Los errores "server internal error" son difíciles de adivinar, así que no podemos descubrir nada con sólo leer código.

Te toca revisar los logs de errores para averiguar lo que ha pasado realmente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/09/2014, 10:50
 
Fecha de Ingreso: septiembre-2010
Ubicación: Reino Independiente Suizo_Andaluz (RISA)
Mensajes: 221
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: error con png al subir a base de datos

Bueno despues de todo el dia probando he llagado a la conclusion de que el problema esta en la parte que hace el redimensionado cuando la imagen es un png
He probado vatias cosas pero nada

Bueno ya que esta acotada la parte del codigo que falla a ver si alguien me puede ayudar
De todas formas seguire buscando a ver si soy capaz
Gracias
__________________
kolectivo grafico deNA
www.kgdena.com
  #4 (permalink)  
Antiguo 05/09/2014, 11:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: error con png al subir a base de datos

Como ya te mencionó @pateketrueke, un Error 500 - Internal Error Server es algo ambiguo para dar una respuesta. Lo que quiere decir ese mensaje es que algo falló a nivel WebServer, pero no puede determinarse exactamente qué.

Este link te puede orientar acerca de qué estamos hablando: http://www.checkupdown.com/status/E500_es.html

Allí verás la descripción algoritmica del tema que sería:
Cita:

Errores 500 en el ciclo HTTP

Cualquier cliente (por ejemplo, su navegador web o nuestro robot CheckUpDown) sigue el siguiente ciclo cuando se comunica con el servidor web:
(1) Obtiene una dirección IP del nombre IP del sitio (la URL del sitio sin el encabezado "http://"). Esta búsqueda (la conversión del nombre IP a dirección IP) es provista por los servidores de nombre de dominio (DNS).
(2) Abre una conexión de socket IP hacia esa dirección IP.
(3) Escribe un flujo de datos HTTP a través de ese socket.
(4) Recibe un flujo de datos HTTP en respuesta desde el servidor web. Este flujo de datos contiene códigos de estado cuyos valores son determinados por el protocolo HTTP. Analiza este flujo de datos en busca de códigos de estado y otra información útil.

Este error ocurre en el paso final mencionado arriba cuando el cliente recibe un código de estado HTTP que reconoce como "500".
En el contexto de tu script, habría que debuggear paso a paso para ver en quñe punto llega el fallo, si es que lo que lo causa es la ejecución de ese script...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 05/09/2014, 12:25
 
Fecha de Ingreso: septiembre-2010
Ubicación: Reino Independiente Suizo_Andaluz (RISA)
Mensajes: 221
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: error con png al subir a base de datos

Gracias por las respuestas, como ya he dicho antes el problema esta tan solo en la parte de redimensionado de la imagen y solo cuando es un png
Si quito esa parte del codigo todo funciona correctamente
Quizas alguien me puede aconsejar otra forma para redimensionar las imagenes y que funcione ta to con jpg como gif y sobre todo png que es donde falla el mio.
Gracias de nuevo
__________________
kolectivo grafico deNA
www.kgdena.com
  #6 (permalink)  
Antiguo 05/09/2014, 13:01
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: error con png al subir a base de datos

Esto puede ser problema de la librería de tu servidor. Yo tuve un caso similar con jpg, todas las imágenes se escalaban bien, menos las jpg.

Te recomiendo verificar si puedes crear un png "desde 0" con los ejemplos del manual, si no puedes, tendrías que ver con tu proveedor que resuelva el problema de la librería.
  #7 (permalink)  
Antiguo 07/09/2014, 02:23
 
Fecha de Ingreso: septiembre-2010
Ubicación: Reino Independiente Suizo_Andaluz (RISA)
Mensajes: 221
Antigüedad: 13 años, 7 meses
Puntos: 24
Respuesta: error con png al subir a base de datos

gracias opc001a, creo que el problema puede venir como dices de problemas del servidor
me podrias especificar que libreria es de la que hablas
__________________
kolectivo grafico deNA
www.kgdena.com

Etiquetas: mysql, png, registro, select, tabla
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 17:36.