IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction transfert fichiers -> résultat incohérent


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 82
    Points : 45
    Points
    45
    Par défaut Fonction transfert fichiers -> résultat incohérent
    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 @+

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 82
    Points : 45
    Points
    45
    Par défaut
    Bon ça y est j'ai trouvé, pour ceux qui auraient eu le même genre de pb :

    Y'avait 2 erreurs :
    1) Dans ma fonction, je dois renvoyer le même type de valeur pour le résultat, et non pas une fois un entier, une fois une chaîne de texte.
    Donc en remplaçant la valeur 1 par la chaine "erreur", et la valeur 0 par la chaîne "doublon", ça fonctionne...
    2) Je devais ajouter un autre paramètre à ma fonction : $chemin_relatif. Car j'avais seulement un chemin absolu pour les besoins de l'upload, et le file_exists(), lui, nécessiterait un chemin relatif...

    C'était tout bête !
    @+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction "intersect" résultats incohérent
    Par Imène_23 dans le forum Images
    Réponses: 3
    Dernier message: 04/03/2013, 12h26
  2. Résultat incohérent de la fonction strlen()
    Par kaayna dans le forum Langage
    Réponses: 2
    Dernier message: 23/05/2008, 17h35
  3. Résultat incohérent de pow, sqrt
    Par PierrotY dans le forum C++
    Réponses: 15
    Dernier message: 16/03/2005, 12h07
  4. besoin d'aide fonction avec fichier (debutant)
    Par boby61 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/03/2005, 11h22
  5. [] [Réseau] Transfert fichier sur un FTP
    Par CYFL dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/02/2003, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo