Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/10/2008, 04:56
fsnoya
 
Fecha de Ingreso: octubre-2007
Mensajes: 8
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: Visualizar imágenes antes de subirlas

Hola Caricatos,

Gracias por tu respuesta: tus pistas me han abierto los ojos y ¡HE CONSEGUIDO HACERLO! Estoy muy contento por esto.
Como tú dices, para que todos puedan participar y para que tú puedas hacer las observaciones que te parezcan oportunas, pongo a seguir el código que he hecho y después te haré unas preguntas.

Código referente al archivo que recibe los datos del tu formulario (en éste, además del campo file hay otro campo de texto "nombre", que servirá para dar nombre a la imagen en el servidor):

Código PHP:
session_start();
//determina el directorio de destino
    
$destino  "../userfiles/image/";

/////// CONSTRUCCION DEL NOMBRE DE LA IMAGEN EN EL SERVIDOR ///////////////
    
$nombre$_POST['nombre'];

//Elimina los espacios que el usuario haja usado al rellenar el campo de texto nombre de la imagen
    
$nombrestr_replace(" ","_",$nombre);

//Determinar la extensión de la imagen
    
$extension $_SESSION["tipo"]; // esta variable retorna algo como image/gif, image/jpg, etc
    
$extension explode('/',$extension);
    
$extension $extension[1];

//Nombre final que la imagen tendrá en el servidor
    
$nombre_foto =$nombre.".".$extension;

//Crea variable con en nombre de la imagen y el directorio donde será guardada
    
$destino_final$destino.$nombre_foto;



/////// GUARDAR EL CONTENIDO DE LA IMAGEN EN EL SERVIDOR CON EL NOMBRE CONSTRUIDO ///////////////
//Guarda en una variable la variable de sesión del contenido de la imagen
    
$archivo $_SESSION["cont"];

//Guarda dicho contenido en el directorio indicado con el nombre de imagen construído
    
file_put_contents($destino_final$archivo);

//Atribuye a ese archivo derechos de lectura
    
chmod ($destino_final0644)); 
OBSERVACIÓN:
En tu script "previendo.php", hay que eliminar la línea que destruye la sesión
//session_destroy();

PREGUNTAS:
1.- ¿Por qué destruyes la sesión en ese script? Lo pregunto también para saber si debo destruirla después de salvar la imagen. Ocurre que en la sesión también tengo variables de administrador pues ésto es parte de un panel de control para administrar una web de una asociación de antiguos alumnos de un colegio.

2.- ¿Es posible recoger el nombre de archivo local? He tenido que poner un campo de texto en el formulario para darle nombre a la imagen pues no sé si es posible recoger el nombre del archivo local.

3.- ¿Por qué tarda más del doble para mostrar la imagen que para subirla? No me refiero en este caso, claro. He hecho varias pruebas en que sólo pre visualizaba la imagen y otras en que sólo subía la imagen.

Bueno, creo que más sería abusar (si es que no lo he hecho ya).
Un saludo y muchas gracias por todo.