Bonjour,

j'ai mis en place un formulaire d'édition avec upload à gérer. vu qu'il s'agit d'édition, certains fichiers existe déjà sur le serveur.

je souhaiterai renommer les anciens fichiers au cas où on uploaderai des nouveau sur le serveur.
pour ce qui est du renommage pas de soucis j'utilise la fonction et la pour mettre en place un système de versionnage.

mon soucis est dans le cas où le nouveau fichier uploadé a le même nom que celui présent sur le serveur.
dans ce cas il écrase l'ancien.

voici un bout de mon code :
Code : 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
$ValidationSON = (move_uploaded_file($_FILES['fichierSON']['tmp_name'],$rep.$_FILES['fichierSON']['name']));
			$ValidationTRS = (move_uploaded_file($_FILES['fichierTRS']['tmp_name'],$rep.$_FILES['fichierTRS']['name']));
			$ValidationCONVENTION =(move_uploaded_file($_FILES['convention_transcription']['tmp_name'],$rep.$_FILES['convention_transcription']['name']));
			$ValidationANNEXE =(move_uploaded_file($_FILES['document_annexe']['tmp_name'],$rep.$_FILES['document_annexe']['name']));
 
 
			//si on choisit d'uploader un fichier alors on créée une alerte avec le nom des fichiers
			if($ValidationSON | $ValidationTRS | $ValidationCONVENTION |$ValidationANNEXE ){
				//message de confirmation JS, comme quoi le fichier est bien enregistré sur le serveur
				echo "<script type=\"text/javascript\">alert(\"Vos fichiers : \\n- ".$_FILES['fichierSON']['name']."\\n- ".$_FILES['fichierTRS']['name']."\\n- ".$_FILES['convention_transcription']['name']."\\n ont bien été enregistré !\");</script>";
 
				//si le fichier est bien uploadé alors on renomme l'ancien s'il existe
				if($ValidationSON){
					rename("../Corpus/$NomFichierSource/$Statut_corpus/$SoundName_bak", "../Corpus/$NomFichierSource/$Statut_corpus/$today-$SoundName_bak" );
 
				}
				if($ValidationTRS){
					rename("../Corpus/$NomFichierSource/$Statut_corpus/$TrsName_bak", "../Corpus/$NomFichierSource/$Statut_corpus/$today-$TrsName_bak" );
 
				}
				if($ValidationCONVENTION){
					//si ce nest pas vide
					if(!empty($convention_transcription_bak)){
						rename("../Corpus/$NomFichierSource/$Statut_corpus/$convention_transcription_bak", "../Corpus/$NomFichierSource/$Statut_corpus/$today-$convention_transcription_bak" );
					}
				}
				if($ValidationANNEXE){
					//si ce nest pas vide
					if(!empty($AnnexeName_bak)){
						rename("../Corpus/$NomFichierSource/$Statut_corpus/$AnnexeName_bak", "../Corpus/$NomFichierSource/$Statut_corpus/$today-$AnnexeName_bak" );
					}
				}
 
			}
jexplique : en fait si l'un des fichiers est envoyé sur le serveur j'affiche une alerte avec le nom des fichiers uploadés.
dans le meme temps si un des types de fichiers est bien envoyé alors on renomme l'ancien grace à une variable de type "_bak" qui permet de récupérer les anciens noms de fichiers.

je veux être sur qu'il y ait eu upload avant de renommer un éventuel fichier; voila pourquoi je bloque.

merci