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 :

copier fichiers vers 4 chemins


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Par défaut copier fichiers vers 4 chemins
    Bonjour,

    Je pars du principe suivant : j'ai 2 fonctions qui déffinisent le chemins de sauvegarde de mes fichiers uploadés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    protected function getUploadRootDir()
     {
    return __DIR__.'/../../../../web/'.$this->getUploadDir();
    }
     
    protected function getUploadDir()
    {
    return 'Test/';
    }

    ../web/Test/ c'est répertoire qui contient mes fichiers uploadés !
    ca marche c'est cool !!

    maintenant je veux définir 4 chemins différents :

    ../web/A/Test/
    ../web/B/Test/
    ../web/C/Test/
    ../web/D/Test/
    j'ai modifier :

    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
     
    <?php
    protected function getUploadRootDir()
    {
    $chemins = array();
     
    $chemins['a'] = __DIR__.'/../../../../web/A/'.$this->getUploadDir();
    $chemins['b'] = __DIR__.'/../../../../web/B/'.$this->getUploadDir();
    $chemins['c'] = __DIR__.'/../../../../web/C/'.$this->getUploadDir();
    $chemins['d'] =__DIR__.'/../../../../web/D/'.$this->getUploadDir();
     
     return $chemins;
    }
    protected function getUploadDir()
    {
    return 'Test/';
    }
    J'ai une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: is_dir() expects parameter 1 to be string, array given in
    Une idée ? un aide ?

    Merci énormément !!

  2. #2
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    Salut
    ton message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: is_dir() expects parameter 1 to be string, array given in
    sous-entend qu tu passes un array à is_dir(), sans doute $chemins, au lieu de lui passer une chaîne de caractère comme $chemins['a'].
    Ton code en dit quoi ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Par défaut
    je peux trés bien passer l'élément $chemins['a'] du tableau mais y en 3 autres !!

  4. #4
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    Citation Envoyé par aitiahcene Voir le message
    je peux trés bien passer l'élément $chemins['a'] du tableau mais y en 3 autres !!
    Tu peux créer une méthode are_dir() à laquelle tu passes ton tableau, et qui te renvoie le booléen:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    protected function are_dir($chemins)
    {
        foreach ($chemins as $chemin)
        {
           if (!is_dir($chemin))
               return false;
        }
        return true;
    }
    Une méthode comme ça ne fait que tester les chemins dans leur ensemble: si un est faux, la méthode renvoi faux...
    à affiner si tu as besoin d'info plus précises.
    edit: j'ai répondu un peu vite: j'ai oublié le return true.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2012
    Messages : 394
    Par défaut
    Oui stp j'ai bsion de + d'infos, tu peux me définir comment la fonction re_dir () prend la valeur du $chemins['a'] car ce n'est pas claire pour moi le foreach et is_dir !!

    Merci bcp kalimukti.

  6. #6
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    Citation Envoyé par aitiahcene Voir le message
    Oui stp j'ai bsion de + d'infos, tu peux me définir comment la fonction re_dir () prend la valeur du $chemins['a'] car ce n'est pas claire pour moi le foreach et is_dir !!
    Tu passes le tableau $chemins en paramètre à la fonction.
    Le foreach va parcourir chacun des éléments ($chemin) du tableau, c'est à dire, chacune des 4 chaînes de caractère.
    Tu peux tester l'effet du foreach avec:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    protected function dump($chemins)
    {
        foreach ($chemins as $chemin)
        {
           var_dump($chemin);
        }
    }
    Du coup, la fonction teste le is_dir sur chacune des chaines de caractère, et retourne 'false' si une de ces chaînes renvoie à un répertoire qui n'existe pas (le (!is_dir()). Si toutes les chaînes renvoient à un répertoire qui existe, la méthode va jusqu'au 'return true'.
    je sais pas si ça répond à tes questions...

Discussions similaires

  1. [2.x] Upload des fichiers vers 4 chemins différents
    Par aitiahcene dans le forum Symfony
    Réponses: 16
    Dernier message: 05/07/2012, 10h14
  2. [Toutes versions] Copier fichier vers autre emplacement
    Par ridokou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/11/2011, 14h56
  3. [XL-2007] VBA Copier fichier vers dossier
    Par Floorfiler dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/01/2011, 22h59
  4. [Fichier] Représenter un chemin vers un fichier
    Par Invité dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 26/03/2007, 19h17
  5. copier fichier du serveur vers le client fso
    Par nigiri dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/02/2006, 13h26

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