[PHP] copie de fichiers
fanny
-
kij_82 Messages postés 4260 Statut Contributeur -
kij_82 Messages postés 4260 Statut Contributeur -
Bonjour,
Je souhaiterai deplacer tout le contenu d'un repertoire qui est sur mon serveur (temp/photos/) vers un autre dossier (photos/) en effacant au préalable le contenu de ce dossier.
Plus en détail
1 ere fois que je lance le script :
dans le dossier temp/phosos/ il y aurait : photo1.jpg, photo2.jpg
dans le dossier photos/ rien
Je voudrais que ca deplace les 2 fichiers dans le dossier photos
2 ème lancement (et pour les futurs lancements)
-Effacer le contenu du dossier photos/
puis envoyer tous les fichiers (sans savoir combien il y en a et comment ils s'appelent) de temp/photos vers photos.
En vous remerciant par avance si quelqu'un peut m'aider
Fanny
Je souhaiterai deplacer tout le contenu d'un repertoire qui est sur mon serveur (temp/photos/) vers un autre dossier (photos/) en effacant au préalable le contenu de ce dossier.
Plus en détail
1 ere fois que je lance le script :
dans le dossier temp/phosos/ il y aurait : photo1.jpg, photo2.jpg
dans le dossier photos/ rien
Je voudrais que ca deplace les 2 fichiers dans le dossier photos
2 ème lancement (et pour les futurs lancements)
-Effacer le contenu du dossier photos/
puis envoyer tous les fichiers (sans savoir combien il y en a et comment ils s'appelent) de temp/photos vers photos.
En vous remerciant par avance si quelqu'un peut m'aider
Fanny
A voir également:
- [PHP] copie de fichiers
- Copie cachée - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Explorateur de fichiers - Guide
1 réponse
Bonjour,
Voilà un petit code à copier / coller dans un fichier :
(Code testé en local chez moi, donc ça devrait fonctionner)
Bien sur tu peux toujours ajouter des variantes comme sélection des fichiers en fonction de leur extension (pour ne copier que telle ou telle sorte de fichier), copie de l'arborescence du fichier d'input dans le fichier output (plutôt que de copier tous les fichiers à la racine du répertoire de sortie)
A toi d'adapter le code selon tes besoins.
Voilà un petit code à copier / coller dans un fichier :
(Code testé en local chez moi, donc ça devrait fonctionner)
<?php function cleanDirectory ( $directory ){ // --- List all files included in input directory $filesList = listFile($directory); // --- Roll on this list for ($i = 0; $i < sizeof($filesList); $i++){ // --- Retrieve current file name $filename = $filesList[$i]; // --- Check if is a directory or a file if ( is_dir($directory."/".$filename) ){ // --- Current file is a directory, call the same function on this new directory cleanDirectory($directory."/".$filename); // --- And } // --- And for all other cases (included directory case), remove current file echo "<BR> unlink file : ".$directory."/".$filename; unlink($directory."/".$filename); } } function copyDocuments ( $inputDirectory, $outputDirectory ){ // --- Parse the input directory to retrieve copy all files to the output directory $filesList = listFile($inputDirectory); // --- Roll on the file list for ($i = 0; $i < sizeof($filesList); $i++){ // --- Retrieve file name $filename = $filesList[$i]; // --- Check if current file is a directory or a file if ( is_dir($inputDirectory."/".$filename) ){ // --- Call the same function on current directory copyDocuments($inputDirectory."/".$filename, $outputDirectory); } else { // --- Copy the file in the output directory if ( ! copy($inputDirectory."/".$filename,$outputDirectory."/".$filename) ){ // --- Report copy error : echo "<BR>[Error] ".$inputDirectory."/".$filename; } else echo "<BR>[Copied] ".$inputDirectory."/".$filename; } } } function listFile ( $directory ){ $filelist = null; $i = 0; if ($dir = @opendir($directory)) { while (($file = readdir($dir)) != false) if($file != ".." && $file != "." ) $filelist[$i++] = $file; closedir($dir); } // --- Tri de la liste if( $filelist != null && sizeof($filelist) != '0') sort($filelist); return $filelist; } // --- How to use these 2 functions : $outputDirectory = "output"; $inputDirectory = "input"; // 1°) Clean output directory : echo "<BR><b>Clean output directory ".$outputDirectory." :</b>"; cleanDirectory($outputDirectory); // 2°) Copy documents from input directory to output directory : echo "<BR><b>Copy documents :</b>"; copyDocuments($inputDirectory, $outputDirectory); ?>
Bien sur tu peux toujours ajouter des variantes comme sélection des fichiers en fonction de leur extension (pour ne copier que telle ou telle sorte de fichier), copie de l'arborescence du fichier d'input dans le fichier output (plutôt que de copier tous les fichiers à la racine du répertoire de sortie)
A toi d'adapter le code selon tes besoins.