Hola.
Tengo este código...
Código PHP:
<?php
//me triago la imagen seleccionada que almaceno en la variable '$_files'
echo "FASE 1: <br><br>";
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>";
}
//ya tengo la información de la imagen y empiezo a enrutarla...
$ruta1=$_SERVER['DOCUMENT_ROOT']."/test/".$_FILES["file"]["name"];
echo "La ruta 1 es: $ruta1<br>";
// una vez tengo la ruta donde quiero que esté, la guardo...
echo "Copiando fichero en Ruta 1<br>";
move_uploaded_file($_FILES["file"]["tmp_name"], $ruta1);
echo "Fichero imagen grande que viene del formulario copiado en su sitio<br><br>";
//comienza la segunda fase... crear la imagen pequeña
echo "FASE 2: <br><br>";
//saco el ancho y alto de la imagen original de fase 1
list($ancho,$alto)=getimagesize($ruta1);
$anchooriginal=$ancho;
echo "Ancho original: $anchooriginal<br>";
$altooriginal=$alto;
echo "Alto original: $altooriginal<br>";
// a ver que es... esto me sirve para luego hacer la validacion y ver si acepto formato o no...
// aun no hecho...
$separo = explode( '.', strtolower($ruta1) );
$nombre = $separo[0];
$extension = $separo[1];
echo "Nombre: $nombre<br>";
echo "Extension: $extension<br>";
//Asigno mis dimensiones finales de la imagen pequeña que quiero usar
$ancho_final="200";
$alto_final="150";
// creamos una nueva imagen en jpg, el unico formato que voy a reconocer como valido.
$imagen_src = imagecreatefromjpeg( $ruta1 );
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 );
$tipoimg=gettype($final);
echo "tipo=$tipoimg<br>";
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>";
//creo el nuevo nombre para la imagen pequeña
$cadenapeque="p.jpg";
$extraigo=substr($_FILES["file"]["name"],0,-4);
$lapeque=$extraigo.$cadenapeque;
echo "La fotopequeña es: $lapeque<br>";
imagejpeg($final, $lapeque);
echo "foto pequeña creada<br><br>";
// fase 3, pasar la imagen pequeña creada a su ruta pertinente...
echo "FASE 3: <br><br>";
$ruta2=$_SERVER['DOCUMENT_ROOT']."/test/arriba/";
$ruta=$ruta2.$lapeque;
echo "Mi ruta 2, es: $ruta<br>";
//cambio los permisos antes de subir
chmod ( $ruta, 0777 );
// y la copio...
move_uploaded_file($ruta1, $ruta2);
echo "Fichero imagen destino copiado en carpeta final $ruta<br>";
// voy cerrando y liberando...
echo"cerrando...<br>";
imagedestroy ($final);
echo"Memoria liberada. [FIN]<br>";
?>
Y me da estos resultados...
Cita: FASE 1:
Archivo de subida: LUFT346.JPG
Tipo de archivo: image/jpeg
Tamaño: 58.04296875 kB
La ruta 1 es: /home/www/test/LUFT346.JPG
Copiando fichero en Ruta 1
Fichero imagen grande que viene del formulario copiado en su sitio
FASE 2:
Ancho original: 500
Alto original: 334
Nombre: /home/www/test/luft346
Extension: jpg
Imagen creada de jpg
Escalas: 0.4, 0.44910179640719
Ya tengo la escala vertical-horizontal
El escalado es: 200, 134
tipo=resource
La nueva imagen esta creada
Copiada y resampleada
La fotopequeña es: LUFT346p.jpg
foto pequeña creada
FASE 3:
Mi ruta 2, es: /home/www/test/arriba/LUFT346p.jpg
Fichero imagen destino copiado en carpeta final /home/hispaviacion/www/test/arriba/LUFT346p.jpg
cerrando...
Memoria liberada. [FIN]
Con la funcion move_upload_file, uso estas dos rutas que se ven en los resultados:
Cita: La ruta 1 es: /home/www/test/LUFT346.JPG
Mi ruta 2, es: /home/www/test/arriba/LUFT346p.jpg
Pues la primera funciona y se graba perfectamente, pero la segunda no hay manera de que se quede en donde se ha especificado y se queda en la ruta anterior, donde se graba sin problemas...
Alguien sabría por que ocurre esto y no se graba cada cosa en su sitio??
Igual me dejo algo o no, pero no se que mirar... ayuda, por favor.
gracias!