Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/05/2013, 00:57
lmcm2008
 
Fecha de Ingreso: abril-2011
Mensajes: 99
Antigüedad: 13 años, 10 meses
Puntos: 2
Pregunta move_upload_file , no consigo que funcione

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_src0000$horizontal$verticalimagesx($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 $ruta0777 );

// 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!