Foros del Web » Programando para Internet » PHP »

Cómo ocultar las imágenes cargadas

Estas en el tema de Cómo ocultar las imágenes cargadas en el foro de PHP en Foros del Web. ola PHPriends, me again con una nueva consulta: estoi probando el código para subir archivos al servidor; imágenes específicamente. el formulario me funciona perfecto, la ...
  #1 (permalink)  
Antiguo 18/03/2011, 00:01
 
Fecha de Ingreso: abril-2010
Ubicación: Calama
Mensajes: 58
Antigüedad: 14 años
Puntos: 0
Pregunta Cómo ocultar las imágenes cargadas

ola PHPriends, me again con una nueva consulta:

estoi probando el código para subir archivos al servidor; imágenes específicamente. el formulario me funciona perfecto, la carga también. el problema es q las imágenes no desaparecen de la página; a medida q voi subiendo imágenes, se van mostrando todas las cargadas. la razón de esto es el siguiente código que pongo al final:

Código PHP:
Ver original
  1. echo "<form action='{$_SERVER['PHP_SELF']}' method='post'><input type='submit' value='OK'></form>";
  2. }
  3. $filehandle=opendir($ruta);//Abrir archivo
  4. while($file=readdir($filehandle))   {
  5.     if($file != "." && $file != "..")   {
  6.         $tamanoArchivo=GetImageSize($ruta. $file);
  7.         echo "<p><img src='$ruta$file' $tamanoArchivo[3]><br /></p>\n";
  8.     }
  9. }
  10. closedir($filehandle);

cuando la carga resulta exitosa, muestro una leyenda como "el archivo se ha cargado", y muestro un botón "OK" q al hacer click en él, se borra la leyenda y la página qeda lista para otra carga.

pero como el código siguiente indica q se abre el directorio donde se encuentran las imágenes, entonces las imágenes se muestran y van qedando en la página sin desaparecer.

lo q qiero es q al subir la imágen, esta imágen cargada se muestre junto con la leyenda "se ha cargado tu imagen". y q al hacer click en "OK", desaparezca tanto la imagen como la leyenda (NO borrarla del directorio, sino q ya no se muestre).

supongo q debería almacenar las imágenes en una array y luego identificar el archivo actual y mostrarlo, o identificar el último archivo cargado y mostrarlo, o algo asi.

espero entiendan mi consulta.

bueno dejo el código completo para q lo revisen:

Código PHP:
Ver original
  1. <html>
  2. <head><title>Album de fotos</title>
  3. </head>
  4. <body>
  5. <h1>Album de fotos</h1>
  6. <h3>Cargar archivo</h3>
  7. <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
  8. <input type="file" name="archivo"><br /><br />
  9. <input type="submit" name="Submit" value="Cargar archivo">
  10. </form>
  11. <?php
  12. $ruta="images/";//indicar ruta del archivo
  13. if(isset($_FILES['archivo']) && $_FILES['archivo']['size'] > 0) {
  14.     $tamanoMax=2097152;//tamaño en bytes= 2 MB
  15.     $nombreTemp=$_FILES['archivo']['tmp_name'];
  16.     $nombreArchivo=$_FILES['archivo']['name'];
  17.     $tamanoArchivo=$_FILES['archivo']['size'];
  18.     $tipoArchivo=GetImageSize($nombreTemp);
  19.     if($tipoArchivo[2]==1 || $tipoArchivo[2]==2 || $tipoArchivo[2]==3)  {//GIF, JPEG o PNG
  20.         if($tamanoArchivo <= $tamanoMax)    {
  21.             if(move_uploaded_file($nombreTemp, $ruta . $nombreArchivo)) {
  22.                 echo "<p>Archivo cargado. Tama&ntilde;o: ".$tamanoArchivo." bytes. Nombre: ".$nombreArchivo.".</p>";
  23.             }   else    {
  24.                 echo "<p>No se pudo cargar el archivo.</p>";
  25.             }
  26.         }   else    {
  27.             echo "<p>El archivo tiene m&aacute;s de ".$tamanoMax." bytes;es demasiado grande.</p>";
  28.         }
  29.     }   else    {
  30.         echo "<p>No es un archivo de im&aacute;gen v&aacute;lido.</p>";
  31.     }
  32.     echo "<form action='{$_SERVER['PHP_SELF']}' method='post'><input type='submit' value='OK'></form>";
  33. }
  34. $filehandle=opendir($ruta);//Abrir archivo
  35. while($file=readdir($filehandle))   {
  36.     if($file != "." && $file != "..")   {
  37.         $tamanoArchivo=GetImageSize($ruta. $file);
  38.         echo "<p><img src='$ruta$file' $tamanoArchivo[3]><br /></p>\n";
  39.     }
  40. }
  41. closedir($filehandle);
  42. ?>
  43. </body>
  44. </html>
  #2 (permalink)  
Antiguo 18/03/2011, 03:10
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Cómo ocultar las imágenes cargadas

Cita:
Iniciado por novoweb
supongo q debería almacenar las imágenes en una array y luego identificar el archivo actual y mostrarlo, o identificar el último archivo cargado y mostrarlo, o algo asi.
Casi supones bien, porque si estas subiendo solamente una imagen cada vez, basta con crear una variable:

Código PHP:
Ver original
  1. // Inicializas como cadena vacia, no hay imagen aun
  2. $mostrar = '';
  3.  
  4. // En el if donde compruebas si se subio correctamente
  5.     $mostrar = $ruta . $nombreArchivo;
  6. }
  7.  
  8. // Al finalizar el script y en vez de leer la carpeta:
  9. if($mostrar != '') {
  10.     echo "<img src=\"$mostrar\" alt=\"Imagen subida\" />";
  11. }
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 19/03/2011, 03:56
 
Fecha de Ingreso: abril-2010
Ubicación: Calama
Mensajes: 58
Antigüedad: 14 años
Puntos: 0
Respuesta: Cómo ocultar las imágenes cargadas

muchas gracias amigo, me resultó perfecto. la imagen se muestra al cargar, y desaparece al hacer click en OK.

thanxs again :)

solo me qeda una consulta: ¿es imperativo poner en el último script las barras invertidas? yo las omití y me funciona iwal de bien...
  #4 (permalink)  
Antiguo 19/03/2011, 23:51
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Cómo ocultar las imágenes cargadas

Las barras invertidas son para escapar las comillas dobles en una cadena delimitada por comillas dobles.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:14.