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 :
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
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; }
Résultat : j'ai systématiquement le code erreur $transfert = 0 (nom de fichier déjà présent sur le serveur), alors que :
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 !';}
- 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 @+
Partager