Foros del Web » Programando para Internet » PHP »

Eliminar imagen de directorio sin refrescar navegador

Estas en el tema de Eliminar imagen de directorio sin refrescar navegador en el foro de PHP en Foros del Web. Que tal amigos.... en el modulo administracion de imagenes ...logro eliminar una imagen en particular de un listado.....al seleccionar un input tipo radio....y luego presiono ...
  #1 (permalink)  
Antiguo 04/07/2012, 07:49
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 14 años
Puntos: 3
Eliminar imagen de directorio sin refrescar navegador

Que tal amigos....

en el modulo administracion de imagenes ...logro eliminar una imagen en particular de un listado.....al seleccionar un input tipo radio....y luego presiono en submit eliminar ...pero no lo elimina inmediatamente....si hasta yo refrescar el navegador con f5

este es el codigo.

Código PHP:
<?php
        
//listado de Banners desde el directorio 
        
$result=scandir("../banner/"); 
        echo 
"<h3>Listado de Banners Disponibles</h3>";
        echo 
"<p>Seleccionar casilla si desea elimiar algun banner </p>";
        echo 
"<form action='' method='post' >";
             
            
$i=0
            foreach(
$result as $archivos)
            {
            if(
$archivos != ".." && $archivos != "." && $archivos != "Thumbs.db")
            { 
            echo 
"Eliminar     <input type=radio name='delete".$i."' value='../banner/".$archivos."'>
                  Actual Banner<input type=radio name='update"
.$i."' value='../banner/".$archivos."'>
                 "
."<img src='../banner/".$archivos."' width='500' height='80'/>"."<br />";
            
            if( 
$_POST["delete".$i] == "../banner/".$archivos ){
            echo 
"<p> NOTA: Se eliminara:</p> ".$_POST["delete".$i];
            
unlink($_POST["delete".$i]);
             }
//fin if
            
            
if( $_POST["update".$i]== "../banner/".$archivos)
            {
            echo 
"<p> NOTA: Esto sera el banner actual:</p> ".$_POST["update".$i];
            
rename($_POST['update'.$i],"../banner/banner01.jpg" );
            
rename("../banner/banner.jpg","../banner/banner10.jpg");
            
rename("../banner/banner01.jpg","../banner/banner.jpg");
            
                         }    
            
$i++;
            } 
//fin if
            
//fin foreach
            
echo "<br />";
            echo 
"<input type='submit' value='Eliminar' />";
            echo 
"<input type='submit' value='Cambiar a Banner actual' />";
            echo 
"</form>";
        
?>

Quisas falta algo como esto....
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Always modified
header("Cache-Control: private, no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0

??? que me dicen

gracias
  #2 (permalink)  
Antiguo 04/07/2012, 08:02
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Eliminar imagen de directorio sin refrescar navegador

en efecto, es tema de caché, si verificas en tu server la imagen se elimina, pero el navegador conserva una caché.

puedes usar esos headers de expiración para todas las imágenes en tu backend, pero eso implica que uses un php de por medio para las imagenes, o usas el parámetro fantasma
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 04/07/2012, 08:04
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 14 años
Puntos: 3
Respuesta: Eliminar imagen de directorio sin refrescar navegador

claro...la imagen se elimina.....del directorio.....pero el navegador conserva la memmoria de la imagen..solo hasta refrescarla....como cuales heades de expiracion te refieres?????...


Muchas gracias de todos modos por responder.
  #4 (permalink)  
Antiguo 04/07/2012, 08:09
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Eliminar imagen de directorio sin refrescar navegador

¡¡¡pero si tu mismo los colocaste!!! :

Cita:
Iniciado por rpichinu Ver Mensaje
Que tal amigos....

Quisas falta algo como esto....
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Always modified
header("Cache-Control: private, no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); // HTTP/1.0

??? que me dicen

gracias
el detalle es dónde lo vas a colocar, no en ese mismo script, debe ser uno intermediario como imagen.php y usarlo como puente entre las imágenes:

Código HTML:
Ver original
  1. <img alt="image x" src="imagen.php?image=imagen_original.jpg" />
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 04/07/2012, 13:55
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Eliminar imagen de directorio sin refrescar navegador

No creo que sea problema de caché, revisa bien tu lógica:

1- Lees cada entrada en el directorio
2- Muestras la imagen
3- Verificas si se va a borrar y, si es el caso, la borras

Sería tan fácil como:

1- Lees cada entrada
2- Verificas si se va a borrar y, si es el caso, la borras
3- Si no se borró, entonces muestras la imagen

Con esto ya no sería necesario recargar la página para ver los cambios.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: directorio, imagenes, navegador, refrescar
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 21:34.