Bonjour à tous,

Tout d'abord je m'excuse pour l'intitulé du sujet, pas réussi à faire plus court. Ce sujet fait suite à celui-ci http://www.developpez.net/forums/d14...-arborescence/

Ensuite voilà le vif du sujet: j'extrais un ZIP en PHP et récupère tout les fichiers qu'il contient dans le dossier souhaité. Une fois que les dossiers sont récupérés, je supprime le dossier qui contenait les fichiers, puis une autre fonction qui supprime les dossiers parents de celui-ci, ce qui fait que une fois l'import réalisé, il ne me reste que les fichiers et je suis comblé ! Enfin comblé pas encore tout à fait car j'enregistre ces fichiers dans une BDD, et lors de l'import du ZIP je propose à l'utilisateur d'entrer des mots-clés qui faciliteront la recherche des fichiers (exemple: j'importe le ZIP toto.zip, je lui mets en mots-clés "à la plage, au rugby, en maillot de bain" et tous les fichiers importés auront dans la BDD ces mots-clés)

Le petit plus c'est que je veux que les fichiers récupérés aient aussi en mots-clés le nom de leurs dossier parents. Re un exemple, toto.img à pour chemin dans le ZIP Plage/maillot/à_carreaux, il faudra qu'en mots-clés il les ait. J'y arrive en partie mais je n'arrive pas à détecter "la fin" d'un dossier ce qui fait que toto.img aura 'Plage maillot à_carreaux' en mots-clés mais que tata.img ayant pour chemin Montagne/Tygnes/Randonnée aura 'Plage maillot à_carreaux Montagne Tygnes Randonnée'

Voilà le code que j'utilise pour ajouter les mots-clés et supprimer le dossier courant une fois l'import des fichiers. L'attribut $nomFichier contient les mots-clés.

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*fonction qui prend en arguments le chemin d'upload, les mots-clés, les dénominations de base du zip  et la base de données pour les requêtes.
La fonction importe toutes les images du dossier $path dans le dossier $dst, supprime le dossier courant des images. Ensuite utilisation de la fonction clear pour supprimer les dossiers parents*/
function rrmdir($path,$keyWords,$nomFichier,$bdd){
	$dst='uploads';
	$cle='';
	$handle = @opendir($path);
	while ($file = @readdir($handle)){
		if($file=='Thumbs.db') unlink($path . "/" . $file);
		if ($file != '.' && $file != '..' && $file != 'Thumbs.db'){
			if (is_dir($path . "/" . $file)){
				$nomFichier .= ' ';
				$cle=$file.' ';
				$nomFichier .= substr($cle,3);
				rrmdir($path . "/" . $file,$keyWords,$nomFichier,$bdd);
			}
			else{
				$urlLink = 'uploads/' . $file;
				$req = $bdd->prepare('INSERT INTO '.$_SESSION['prod'].'(Nom, Url) VALUES (:nomfichier, :url)');
				$req->execute(array(
					'nomfichier' => $nomFichier,
					'url' => $urlLink
				));						
				if ($keyWords != NULL)  {
					//on ajoute les keywords selectionnés dans la table 
					echo($nomFichier);
					$req = $bdd->prepare('UPDATE '.$_SESSION['prod'].' SET Keywords = :keyWords WHERE Nom = :nomfichier');
					$req->execute(array(
						'nomfichier' => $nomFichier,
						'keyWords' => $keyWords
					));
				}
				copy($path . "/" . $file, $dst."/".$file);
				unlink($path . "/" . $file);
			}
		}
	}
	@closedir($path);
	@rmdir($path);
}

Si vous avez une idée pour résoudre ce problème tenez moi au courant !

Merci d'avance,
SUSUmu