Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2014, 02:46
nikimoto
 
Fecha de Ingreso: septiembre-2010
Ubicación: Reino Independiente Suizo_Andaluz (RISA)
Mensajes: 221
Antigüedad: 14 años, 6 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