Bonjour à tous,

Pourriez-vous me dire ce qui ne va pas dans ma fonction transferer_fichier() qui teste la présence d'un fichier de même nom sur le serveur puis uploade le fichier si tout va bien :

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
 
function transferer_fichier($NomTemp,$NomReel,$RepDestination)
{
	$nom_fichier = traite_nom_fichier($NomReel); //enlève les caractères non autorisés + fixe le nom de fichier à 30 caractères maxi
 
	if (file_exists($RepDestination.$nom_fichier)) {
		//nom existe déjà
		$nom_fichier = 0;
	}
	else {
		if (move_uploaded_file($NomTemp, $RepDestination.$nom_fichier)) {
			//OK
			$nom_fichier = $nom_fichier;
		}
		else {
			//erreur transfert
			$nom_fichier = 1;
		}
	}
 
	return $nom_fichier;
}
Après, dans ma page php, je gère le résultat de la fonction avec un code de ce genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
$transfert = transferer_fichier($NomTemp,$NomReel,$RepDestination);
if ($transfert == 0) {echo 'Un fichier de même nom existe déjà sur le serveur';}
else if ($transfert == 1) {echo 'Erreur de transfert';}
else {echo 'Transfert réussi !';}
Résultat : j'ai systématiquement le code erreur $transfert = 0 (nom de fichier déjà présent sur le serveur), alors que :
- il n'existe absolument pas de fichier de même nom sur le serveur
- l'upload se fait quand même avec succès

Je ne comprend pas comment il peut me renvoyer $transfert = 0 alors que l'upload a réussi et que $transfert devrait être égal à $nom_fichier.

Merci d'avance pour votre aide @+