Mover archivo a una carpeta en PHP
Este artículo explicará el método para mover un archivo de una carpeta a otra. Puede parecer complicado, pero es muy fácil hacerlo. Todo lo que necesita es practicar la función nativa de PHP rename
. Su nombre implica que funciona renombrando un archivo o directorio. Puede confundirlo al principio, pero cambiar el nombre de la ruta de un archivo finalmente lo mueve a la nueva ubicación.
Use la función rename()
para mover un archivo a otra carpeta en PHP
Para utilizar la función rename()
, debemos especificar las ubicaciones de origen y destino del archivo que se va a mover. La ubicación de origen es el directorio actual donde se guarda el archivo, y la ubicación de destino es donde queremos mover nuestro archivo. ¡Discutámoslo con la ayuda de un ejemplo!
Supongamos que tenemos dos directorios llamados source_directory
y dest_directory
. Tenemos un archivo llamado move-test.txt
en el source_directory
, y deseamos moverlo a dest_directory
usando PHP.
Echemos un vistazo al siguiente código:
<?php
$currentLocation = 'source_directory/move-test.txt';
$newLocation = 'dest_directory/move-test.txt';
$moved = rename($currentLocation, $newLocation);
if($moved)
{
echo "File moved successfully";
}
?>
La explicación del código mencionado anteriormente es la siguiente.
- La ruta actual del archivo se especifica primero usando la variable
$currentLocation
. - Luego, se especifica la nueva ubicación junto con el nombre del archivo. En palabras más simples, es la nueva ubicación a la que deseamos mover nuestro archivo.
- Si desea darle a su archivo un nombre diferente, puede hacerlo cambiando el nombre de archivo
move-test.txt
en la variable$newLocation
con su nuevo nombre de archivo. - La función de cambio de nombre toma dos parámetros:
$currentLocation
para la ruta del archivo antes de mover la operación y$newLocation
para la nueva ruta del archivo después de moverlo con éxito a la ubicación deseada.
Consideraciones importantes
La función rename
devuelve TRUE
, si la operación de movimiento es exitosa. Dos cosas importantes a tener en cuenta aquí son:
- El archivo a mover debe existir. Debe asegurarse de que el archivo que está tratando de mover debe existir. De lo contrario, arrojará una advertencia que indica:
El sistema no puede encontrar el archivo especificado
. - Se puede sobrescribir un archivo existente. La función de cambio de nombre puede resultar en la sobrescritura de un archivo existente, lo que significa que si
$newLocation
es el nombre de algún archivo existente, luego de la operación de movimiento con la función de cambio de nombre, el archivo existente se sobrescribirá.
para comprobar si existe el archivo
Para verificar si el archivo existe o no antes de moverlo a otra carpeta, puede usar la función is_file
proporcionada por PHP.
El ejemplo de código para verificar si el archivo existe o no usando la función is_file
es el siguiente:
<?php
$currentLocation = 'source_directory/move-test.txt';
$newLocation = 'dest_directory/move-test.txt';
if(is_file($currentLocation))
{
$moved = rename($currentLocation, $newLocation);
}
if($moved)
{
echo "File moved successfully";
}
?>
En el ejemplo anterior, is_file($currentLocation)
se usa para verificar si el archivo que deseamos mover existe o no antes de llamar a la función de cambio de nombre que realiza la operación de movimiento.
para comprobar si el archivo no se sobrescribe
El método para garantizar que un archivo existente no se sobrescriba al mover un archivo de una ubicación a otra se explica en el siguiente ejemplo de código:
<?php
$currentLocation = 'source_directory/move-test.txt';
$newLocation = 'dest_directory/move-test.txt';
if(!is_file($newLocation))
{
$moved = rename($currentLocation, $newLocation);
}
if($moved)
{
echo "File moved successfully";
}
?>
En el ejemplo anterior, is_file($newLocation)
se usa para verificar si existe otro archivo que podría sobrescribirse cuando se llama a la función rename
.