Foros del Web » Programando para Internet » PHP »

Dos en una.Vaciar un directorio sin eliminarlo

Estas en el tema de Dos en una.Vaciar un directorio sin eliminarlo en el foro de PHP en Foros del Web. hola tengo una pregunta que se deriban de pequeños problemas que tentengo un script donde cargo una foto ( tapa de un diario ) y ...
  #1 (permalink)  
Antiguo 06/06/2008, 17:01
Avatar de mauricioadrian  
Fecha de Ingreso: junio-2008
Mensajes: 157
Antigüedad: 15 años, 10 meses
Puntos: 0
Dos en una.Vaciar un directorio sin eliminarlo

hola tengo una pregunta que se deriban de pequeños problemas que tentengo un script donde cargo una foto ( tapa de un diario ) y para no guardar el nombre de la foto en un tabla le pedi a mi cliente que la guarde con el mismo nombre siempre. el tema es que cuando la sube la foto no me remplaza a la anterior y encima me genera
errores en la copia, osea que tengo que bajarla y agarrar un editor y volverla a guardar. devido a todo esto quiero :
_ VACIAR EL DIRECTORIO DE LA IMAGEN ANTES DE VOLVER A CARGARLA

aguien tiene una funcion para vaciar el directorio sin eliminarlo¿?
  #2 (permalink)  
Antiguo 06/06/2008, 18:44
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Dos en una.Vaciar un directorio sin eliminarlo

... cargas un archivo con un script PHP, pero si el archivo existe, no lo sobre-escribe.

Pues estará mal tu script, borrar el directorio es una mala solución (aunque sí, solución al fin). Como sea, puedes hacerlo con unlink() (que igual podrías utilizar en una validación de existencia del archivo).
www.php.net/unlink // Para borrar archivos
www.php.net/opendir // Para leer el directorio
www.php.net/move_uploaded_file // Función que se utiliza al subir archivos por POST (y los sobre-escribe)

Lo siento, no tengo una función a la mano, será fácil implementarla (de hecho, mira en los comentarios de los enlaces que dejo).
Suerte
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 06/06/2008, 19:04
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Respuesta: Dos en una.Vaciar un directorio sin eliminarlo

Hola mauricioadrian. Fijate este post: http://www.forosdelweb.com/f18/elimi...arpeta-553078/
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #4 (permalink)  
Antiguo 06/06/2008, 19:55
Avatar de mauricioadrian  
Fecha de Ingreso: junio-2008
Mensajes: 157
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Dos en una.Vaciar un directorio sin eliminarlo

hgp147 estoy probando la funcion que hay en el foro uqe me pasaste. y me tira el siguiente error Warning: opendir(/cargador/tapa_diario/) [function.opendir]: failed to open dir: No such file or directory in .... a que se debera? estara mal la ruta? yo lo ejecuto, no del raiz del sitio al script, dentro de una carpeta cargador. y l0s archivos que quiero borrar entan dentro de tapa_diario
que a su vez esta esta dentro de cargador
que a su vez este esta en public_html
  #5 (permalink)  
Antiguo 06/06/2008, 20:08
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 3 meses
Puntos: 36
Respuesta: Dos en una.Vaciar un directorio sin eliminarlo

Proba así:

Código PHP:
# $is_subdir deberá ser true cuando se esté referenciando a un subdirectorio
function remove_directory($directorio$is_subdir false) {  
  if (
$handle opendir("$directorio")) {
    while (
false !== ($item readdir($handle))) {
      if (
$item != "." && $item != "..") {
        if (
is_dir("$directorio/$item")) {
          
# son subdirectorios y que debe borrarlos
          
remove_directory("$directorio/$item"true);
        } else {
          
unlink("$directorio/$item");
        }
      }
    }
    
closedir($handle);
 
    
# Si es un subdirectorio, debe borrarlo
    
if($is_subdir != falsermdir($directorio);
  }
}
 
remove_directory("./tapa_diario"); 
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #6 (permalink)  
Antiguo 06/06/2008, 20:29
Avatar de mauricioadrian  
Fecha de Ingreso: junio-2008
Mensajes: 157
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Dos en una.Vaciar un directorio sin eliminarlo

que le cambiaste?
  #7 (permalink)  
Antiguo 06/06/2008, 20:34
Avatar de mauricioadrian  
Fecha de Ingreso: junio-2008
Mensajes: 157
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Dos en una.Vaciar un directorio sin eliminarlo

sarpadisimo me bolo el directorio entero! yo queria borrar el contenido, o esto es por el segundo parametro de la function?
  #8 (permalink)  
Antiguo 06/06/2008, 20:39
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Respuesta: Dos en una.Vaciar un directorio sin eliminarlo

Cita:
Iniciado por mauricioadrian Ver Mensaje
hgp147 estoy probando la funcion que hay en el foro uqe me pasaste. y me tira el siguiente error Warning: opendir(/cargador/tapa_diario/) [function.opendir]: failed to open dir: No such file or directory in .... a que se debera? estara mal la ruta? yo lo ejecuto, no del raiz del sitio al script, dentro de una carpeta cargador. y l0s archivos que quiero borrar entan dentro de tapa_diario
que a su vez esta esta dentro de cargador
que a su vez este esta en public_html
El error te dice que no encuentra el archivo o directorio. Además te dice la línea del error... entonces, sí, seguramente la ruta estará mal.

Los errores son claros, hay que leerlos.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 17:54.