¡SOLUCIONADO! Código PHP:
if (isset($_GET['id_cat']))
{
$id_cat = $_GET['id_cat'];
}
$datos_categoria = mostrar_categoria_id($id_cat);/Consulta SQL en otro fichero
$resultado = mysql_query($datos_categoria);
if ($valor = mysql_fetch_array($resultado))
{
$id_cat = $valor[0];
$titulo_cat = $valor[1];
$detalle_cat = $valor[2];
$path_thumb_cat = $valor[4];
$orden_cat = $valor[5];
}
$datos_fotos = mostrar_fotosporcat($valor[0]);//Consulta SQL en otro fichero
$resfotos = mysql_query($datos_fotos);
if (isset($_POST['add_foto']))
{
//Inicializar variables
$id_cat = "";
$n_foto1 = "";
$id_cat = $_POST['id_cat'];
//Recibo Ficheros - Foto Thumb
$n_foto1 = $_FILES['foto1']['name'];
$n_foto1_tmp = $_FILES['foto1']['tmp_name'];
$n_foto1_size = $_FILES['foto1']['size'];
$n_foto1_type = $_FILES['foto1']['type'];
//DEBUG VARIABLES Y FUNCIONAMIENTO GENERAL
/*
echo $id_cat."<br />";
echo $n_foto1."<br />";
echo $n_foto1_tmp."<br />";
echo $n_foto1_size."<br />";
echo $n_foto1_type."<br />";*/
//Si el alto máximo es superado, se detiene la carga y welta patrá! xDD
list($ancho_original, $alto_original, $tipo_original, $alternativo) = getimagesize($n_foto1_tmp);
if ($alto_original > 393)
{
echo "<script>alert('El alto maximo es 393px. La imagen va a ser redimensionada.');</script>";
/********************************************************/
/* PRIMERAS PRUEBAS DE REDIMENSIONAMIENTO */
/*echo "Ancho Original: " .$ancho_original."<br />";
echo "Alto Original: " .$alto_original."<br />";
echo "Tipo de Foto: " .$tipo_original."<br />";
*/
//ALTO MAXIMO
$alto_final = 369;
//DIRECTORIO DONDE CAERAN LAS IMAGENES REDIMENSIONADAS
//$directorio = 'images/grandes';
//SI IMAGEN CARGADA ES GIF
if($n_foto1_type == "image/gif"){$img = imagecreatefromgif($n_foto1_tmp);}
//SI IMAGEN CARGADA ES JPG/JPEG/PJPEG
if ($n_foto1_type == "image/jpeg" || $n_foto1_type == "image/pjpeg"){ $img = imagecreatefromjpeg($n_foto1_tmp);}
//SI IMAGEN CARGADA ES PNG
if($n_foto1_type == "image/png"){$img = imagecreatefrompng($n_foto1_tmp);}
//CALCULO DE RANGOS PARA HACER REDIMENSIONADO SIN AFECTAR LA PROPORCION
echo $img;
if ($alto_original > $alto_final)
{
$ancho_final = "";
$ancho_final = $ancho_original * $alto_final/$alto_original;
}
echo $ancho_final."<br />";
echo $alto_final."<br />";
//die();
//CREACIÓN DE NUEVO LIENZO DONDE SE SE PEGARÁ EL CACHE DE CREACIÓN DE IMAGECREATEFROM-TYPE
$thumb = imagecreatetruecolor($ancho_final,$alto_final);
//PEGA EL CACHE DE CREACIÓN AL LIENZO RECIÉN CREADO.
//LIENZO, CACHE, X LIENZO, Y LIENZO, X CACHE, Y CACHE, ANCHO FINAL,ALTO FINAL, ANCHO ORIGINAL, ALTO ORIGINAL.
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $ancho_final, $alto_final, $ancho_original, $alto_original);
if ($n_foto1_type == "image/gif")
{
imagegif($thumb, $n_foto1_tmp);
}
if ($_FILES['foto1']['type'] == "image/jpeg" || $_FILES['foto1']['type'] == "image/pjpeg")
{
imagejpeg($thumb, $n_foto1_tmp, 100);
}
if ($n_foto1_type == "image/png")
{
imagepng($thumb, $n_foto1_tmp);
}
}
if ($n_foto1 == '') //SIN FOTO
{
$n_foto1 = "";
$sin_foto1 = "TRUE";
echo "<script>alert('No ha seleccionado ninguna imagen o el formato de imagen es incorrecto.');</script>";
echo "<script type=\"text/javascript\">window.location = 'javascript:history.go(-1)';</script>";
die();
} else if ($n_foto1 != '')// CON FOTO
{
$n_foto1 = renombrar($n_foto1);
$sin_foto1 = "FALSE";
}
//Funciones de Carga al Servidor
$upload_dir = "http://www.forosdelweb.com/images/grandes/";
//Mover direccion temporal de FOTO 1 a DIRECCION FINAL en images/noticias/chicas
if ($sin_foto1 != "TRUE")
{
$n_path_foto1 = $upload_dir . $n_foto1;
$resultado1 = move_uploaded_file($n_foto1_tmp, $n_path_foto1);
if (!$resultado1)
{
echo 'Error, La consulta falló luego de subir archivo : '.mysql_error();
exit;
die();
}
}
//***********************************************************
//Aca deben incluirse los datos de ingreso a la base de datos.
//***********************************************************
if (!get_magic_quotes_gpc())
{
$n_foto1 = addslashes($n_foto1);
$n_path_foto1 = addslashes($n_path_foto1);
}
$sql="INSERT INTO tabla (id_cat, nom_foto, path_foto, orden_foto)
VALUES ('".$id_cat."',
'".$n_foto1."',
'".$n_path_foto1."', '1')";
//echo $sql;
$resultado_add = mysql_query($sql);
if (!$resultado_add)
{
echo 'Error, La consulta falló tratando de ingresar a bd : '.mysql_error();
}
else {
echo "<script>alert('Imagen agregada correctamente.');</script>";
//echo "<script>window.location = 'admin.php?op=catfotos_add&id_cat=".$id_cat."'; </script>";
}
}
La solucion al error o warning:
Código:
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in...
Por alguna razón, no me tomaba el valor del tipo de imagen al hacer este comando:
Código PHP:
list($ancho_original, $alto_original, $tipo_original, $alternativo) = getimagesize($n_foto1_tmp);
Los valores de tipo_original salen como 1,2,3. Mientras que $_FILES['foto']['type']; te responde con image/gif, image/jpeg o image/pjpeg, y image/png
Con estos ultimos valores es posible que la wea funcione.
Valida que subas o no imagenes, para formularios donde la imagen sea opcional. El alto máximo se puede cambiar, y como comente casi todas las lineas de código, puede cambiarse para redimensionar segun el ancho en vez de por el alto.
Muchas gracias por todos los tips.!!
Silla!