Foros del Web » Programando para Internet » PHP »

borrar fotos - tiempo

Estas en el tema de borrar fotos - tiempo en el foro de PHP en Foros del Web. hola, tengo una duda, yo tengo un sistema para subir fotos a mi web, pero es de uso publico y se me acaba rapido el ...
  #1 (permalink)  
Antiguo 19/10/2004, 14:32
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
Busqueda borrar fotos - tiempo

hola, tengo una duda, yo tengo un sistema para subir fotos a mi web, pero es de uso publico y se me acaba rapido el espacio para suibir mas, y queria saber como puedo hacer para que las fotos viejas se borren solas, digamos que yo quiero que se borren las fotos despues de que estan 7 dias en mi espacio web, pero sin borrar las nuevas, creo que se entiende, tienen idea de como puedo hacer esto?
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.
  #2 (permalink)  
Antiguo 19/10/2004, 15:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
En principio, puedes averiguar la fecha de creación del archivo (tu foto) (si es que no controlas la fecha que subió tu imagen por otro médio; lease: base de datos .. etc .. u otro tipo de registro).

Podrías usar la función filemtime() o afines (www.php.net/filemtime)

Con esa fecha ya puedes comparar con la fecha actual para realizar el borrado (unlink()) del archivo si esta es mayor que la fecha actual + 7 días .. Si trabajas las fechas en TIMESTAMP (Unix) no tendrás muchos problemas para esa comparación de fechas.

Ahora, el problema es "cuando" ejecutaras ese script, puedes incluirlo en tu página de inicio o la que creas tu que tenga más visitas o mejor todavía si puedes usar un Cron Job (de Linux/Unix) o su equivalente para windows "programador de taréas" para ejecutar ese script al intervalo de fechas que definas.

Un saludo,
  #3 (permalink)  
Antiguo 24/10/2004, 20:31
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
Gracias por guiarme un poco, pero estube investigando un poco y encontre este codigo que supuestamente es para borrar los archivos despues de un tiempo, te parece que me sirvira para lo que quiero hacer?

Código PHP:
$path "imagenes/"

       
if (is_dir("$path") ) 
       { 
           
$handle=opendir($path); 
           while (
false!==($file readdir($handle))) { 
               if (
$file != "." && $file != "..") {  
                   
$Diff = (time() - filectime("$path/$file"))/60/60/24;
                   if (
$Diff 14unlink("$path/$file");

               } 
           }
           
closedir($handle); 
       } 
saludos y gracias
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.
  #4 (permalink)  
Antiguo 25/10/2004, 11:13
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
up
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.
  #5 (permalink)  
Antiguo 25/10/2004, 11:27
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Si, puede servir, filectime() (www.php.net/filectime) es la ultima vez que se modifico el fichero.

Eso si, tienes que ejecutar ese codigo para que las borre. Prueba lo que te comenta Cluster. O podrias ejecutar ese script cuando subas una nueva foto (antes de guardarla la nueva).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 25/10/2004, 12:14
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
ah gracias por la ayuda, pero tengo una duda, el codigo compara el tiempo de modificado del archivo con el tiempo del server o del usuario?
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.

Última edición por Sebastian1046; 25/10/2004 a las 13:24
  #7 (permalink)  
Antiguo 25/10/2004, 14:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
La función time() que usa tu ejemplo .. es el tiempo del "server" ... PHP se ejecuta en el servidor no en el cliente (y en ese código no hay nada como para "subir" la fecha del cliente/usuario al servidor y tomar esa en lugar de la del servidor).

Un saludo,
  #8 (permalink)  
Antiguo 25/10/2004, 14:36
Avatar de Sebastian1046  
Fecha de Ingreso: junio-2003
Mensajes: 278
Antigüedad: 20 años, 10 meses
Puntos: 0
ah, gracias por aclararme la duda, ya pude hacer lo que queria, les agradesco mucho la ayuda!

Saludos
__________________
Agradesco infinitamente a toda la gente del foro que me ayudo/a.
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:03.