lunes, 6 de marzo de 2017

Mover un fichero de un directorio a otro con php

En este artículo veremos dos formas de mover un fichero de un directorio a otro usando php.
PHP lo que no dispone es de una función "move_to()"  o algo así para mover un archivo; entiendase al hecho de "mover" como: copiar en destino y borrar en origen el archivo  Pero si te fijas en esa "definición"  lo que sí que tienes en PHP son las funciones: copy() (para copiar) y unlink() para borrar archivos  así que se trata de que hagas por ejemplo tu función:
Código PHP:
function move_to($origen,$destino){
  copy($origen,$destino);
  unlink($origen);
}
y  ya tendrías tu función  (a todo esto haría falta algunas otras funciones auxiliares para mejorarla como: validación de existencia del archivo origen  no borrar el archivo hasta que quede en destino (verificando si no dá error copy() ) asignar o establecer permisos de escritura automáticamente (chmod() , etc ) De todas formas al parecer rename() hace eso ya. Ahora que el nombre de la función para lo que hace no sea el más acertado estoy deacuerdo pero si se indican rutas diferentes para origen y destino En realidad parece que -mueve- el archivo. Sobre la solución vía comando del S.O. del servidor esa solución como veras te "amarra" mucho con el S.O. que use el servidor (no será el mismo comando para PHP bajo windows que para Linux por ejemplo)  también dependes mucho de los permisos que tenga PHP  por ejemplo PHP en modo "safe" (modo seguro: "safe mode") no permite ejecutar comandos en el S.O.  así que no funcionaría el método. Por supuesto está que usar funciones "nativas" del S.O. facilitan y aceleran tareas de ese estilo (por ejemplo .. mover un directorio entero .. con archivos y estructura (sub-directorios)  será mucho más simple lanzando el comando correspondiente (xcopy()  etc según S.O.) que no ir leyendo la estructura deun lado para replicarla en otro.

Bueno, esto es una breve experiencia de mi experiencia usando la clase copy(), unlink() y rename()  para mover ficheros en php, espero haya podido ser de ayuda.

¿Te ha gustado este Post? Compártelo con tus amigos.

No hay comentarios:

Publicar un comentario

IconIconIcon