Déplacer un fichier vers un dossier en PHP

Nimra Ejaz 1 avril 2022
Déplacer un fichier vers un dossier en PHP

Cet article explique la méthode pour déplacer un fichier d’un dossier à un autre. Cela peut sembler délicat, mais c’est super facile à faire. Tout ce dont vous avez besoin est de pratiquer la fonction native de PHP rename. Son nom implique qu’il fonctionne en renommant un fichier ou un répertoire. Cela peut vous dérouter au début, mais renommer le chemin d’un fichier le déplace finalement vers le nouvel emplacement.

Utilisez la fonction rename() pour déplacer le fichier vers un autre dossier en PHP

Pour utiliser la fonction rename, nous devons spécifier les emplacements source et destination du fichier à déplacer. L’emplacement source est le répertoire actuel où le fichier est conservé et l’emplacement de destination est l’endroit où nous voulons déplacer notre fichier. Discutons-en à l’aide d’un exemple !

Supposons que nous ayons deux répertoires nommés source_directory et dest_directory. Nous avons un fichier appelé move-test.txt dans le source_directory, et nous souhaitons le déplacer vers le dest_directory en utilisant PHP.

Regardons le code suivant :

<?php
$currentLocation = 'source_directory/move-test.txt';
$newLocation = 'dest_directory/move-test.txt';
$moved = rename($currentLocation, $newLocation);
if($moved)
{
    echo "File moved successfully";
}
?>

L’explication du code mentionné ci-dessus est la suivante.

  1. Le chemin courant du fichier est d’abord spécifié à l’aide de la variable $currentLocation.
  2. Ensuite, le nouvel emplacement ainsi que le nom du fichier sont spécifiés. En termes plus simples, c’est le nouvel emplacement où nous souhaitons déplacer notre fichier.
  3. Si vous souhaitez donner un nom différent à votre fichier, cela peut être fait en changeant le nom du fichier move-test.txt dans la variable $newLocation avec votre nouveau nom de fichier.
  4. La fonction de renommage prend deux paramètres : $currentLocation pour le chemin du fichier avant l’opération de déplacement et $newLocation pour le nouveau chemin du fichier après l’avoir déplacé avec succès vers l’emplacement souhaité.

Considérations importantes

La fonction rename renvoie TRUE, si l’opération de déplacement est réussie. Deux choses importantes à noter ici sont :

  1. Le fichier à déplacer doit exister. Vous devez vous assurer que le fichier que vous essayez de déplacer doit exister. Sinon, il lancera un avertissement indiquant : The system cannot find the file specified..
  2. Un fichier existant peut être écrasé. La fonction de renommage peut entraîner l’écrasement d’un fichier existant, ce qui signifie que si $newLocation est le nom d’un fichier existant, alors après l’opération de déplacement avec la fonction de renommage, le fichier existant sera écrasé.

pour vérifier si le fichier existe

Afin de vérifier si le fichier existe ou non avant de le déplacer dans un autre dossier, vous pouvez utiliser la fonction is_file fournie par PHP.

L’exemple de code pour vérifier si le fichier existe ou non à l’aide de la fonction is_file est le suivant :

<?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";
  }
?>

Dans l’exemple ci-dessus, is_file($currentLocation) est utilisé pour vérifier si le fichier que nous souhaitons déplacer existe ou non avant d’appeler la fonction de renommage qui effectue l’opération de déplacement.

pour vérifier si le fichier n’est pas écrasé

La méthode pour s’assurer qu’un fichier existant n’est pas écrasé lors du déplacement d’un fichier d’un emplacement à un autre est expliquée dans l’exemple de code suivant :

<?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";
}	
?>

Dans l’exemple ci-dessus, is_file($newLocation) est utilisé pour vérifier s’il existe un autre fichier qui pourrait être écrasé lorsque la fonction rename est appelée.

Article connexe - PHP File