Tengo este código que estoy haciendo (no esta completo pero va funcionando) y no me funciona la ultima parte donde quiero "copiar y salvar" la imagen pequeña que he construido al servidor.
La cambio de nombre a partir de la original, de modo que me quede Original: XXXX.JPG y Pequeña redimensionada: XXXXp.jpg
Pues esa pequeña no consigo salvarla al servidor.
Voy sacando echos para ver que va haciendo bien todo... pero donde creo que esta el error es en la linea del comentario: //PASO LA IMAGEN CREADA PEQUEÑA Y LA GRABO EN LA CARPETA DESTINOFINAL
Alguien me puede echar una mano y decirme que estoy haciendo mal o que me falta?? No lo veo.
Muchas gracias
Código PHP:
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Archivo de subida: " . $_FILES["file"]["name"] . "<br>";
echo "Tipo de archivo: " . $_FILES["file"]["type"] . "<br>";
echo "Tamaño: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
}
$archivo=$_SERVER['DOCUMENT_ROOT']."/test/arriba/".$_FILES["file"]["name"];
echo "el archivo es: $archivo<br>";
echo "Copiando fichero en destino<br>";
move_uploaded_file($_FILES["file"]["tmp_name"], $archivo);
echo "Fichero imagen copiado<br>";
//saco el ancho y alto de la imagen original
list($ancho,$alto)=getimagesize($archivo);
$anchooriginal=$ancho;
echo "Ancho original: $anchooriginal<br>";
$altooriginal=$alto;
echo "Alto original: $altooriginal<br>";
// a ver que es...
$separo = explode( '.', strtolower($archivo) );
$nombre = $separo[0];
$extension = $separo[1];
echo "Nombre: $nombre<br>";
echo "Extension: $extension<br>";
//mis dimensiones finales
$ancho_final="200";
$alto_final="150";
// creamos una nueva imagen en jpg
$imagen_src = imagecreatefromjpeg( $archivo );
echo "imagen creada de jpg<br>";
//recalcular dimensiones para escalar
//incializo variables y calculo
$escala_1=1;
$escala_2=1;
$escala_1=$ancho_final/$anchooriginal;
$escala_2=alto_final/$altooriginal;
echo "Escalas: $escala_1, $escala_2 <br>";
//Comparo para ver si es horizontal o vertical
if ( $altooriginal > $anchooriginal )
{
$escala_1 = $escala_2;
}
echo"Ya tengo la escala vertical-horizontal<br>";
// escalar la imagen
$horizontal=ceil( $anchooriginal * $escala_1 );
$vertical=ceil( $altooriginal * $escala_1 );
echo"El escalado es: $horizontal, $vertical<br>";
//crear la nueva imagen
$final=imagecreatetruecolor ( $horizontal, $vertical );
echo"La nueva imagen esta creada<br>";
//copiar la imagen en la nueva imagen pequeña
imagecopyresized ( $final, $imagen_src, 0, 0, 0, 0, $horizontal, $vertical, imagesx($imagen_src), imagesy($imagen_src) );
echo"Copiada y resampleada<br>";
$destinofinal=$_SERVER['DOCUMENT_ROOT']."/test/arriba/";
echo "Copiando fichero destino en destino: $destinofinal<br>";
//creo el nuevo nombre para la imagen pequeña
$cadenapeque="p.jpg";
$extraigo=substr($final,0,-4);
$lapeque=$extraigo.$cadenapeque;
echo "La fotopequeña es: $lapeque<br>";
//creamos
imagejpeg($final,$lapeque);
//PASO LA IMAGEN CREADA PEQUEÑA Y LA GRABO EN LA CARPETA DESTINOFINAL
copy($lapeque, $destinofinal);
echo "Fichero imagen destino copiado en carpeta final<br>";
echo"cerrando...<br>";
imagedestroy ($final);
echo"Memoria liberada. [FIN]<br>";
?>