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 :

Upload fichier PHP


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Upload fichier PHP
    Bonjour,

    Je me permets de poster mon problème ici en espérant que quelqu'un puisse m'éclairer avec une solution.

    script existant : J'ai un formulaire en php (AfficheArbo.php) permettant de lister une arborescence d'une cible donnée. Ce script permet de parcourir chaque dossier de la source. Si un dossier contient un sous répertoire, il recommence (Méthode par récursivité) jusqu'au dernier dossier et créé un bouton de type file avec comme propriétés name = "nom du dernier dossier" value="parcourir". Lorsque l'utilisateur valide, le script ExeUpload.php se lance.

    Problèmes : J'aimerai maintenant récupérer chaque nom de fichier sélectionnés du script AfficheArbo.php pour l'uploader via le script ExeUpload.php. Si je fais, $_FILES['nom d'un dernier dossier']['name'] ça marche. Mais comment parcourir l'ensemble des boutons de type file sachant que certains ne sont pas obligés d'être utilisé ?

    Rq: Je ne demande pas du obligatoirement du code mais plutôt la méthode à employer.

    Merci par avance,

    Cordialement,

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    si un input file n'est pas rempli tu peux le savoir assez facilement. il suffit de faire une boucle sur les fichiers uploadés pour les déplacer/renommer/traiter ou tu désires. ou je n'ai pas compris le problème

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Si tu as compris. Je bloque sur la boucle qui me permettra de récupérer l'ensemble des fichiers à uploader. Sachant que les boutons de type file reçoit la même variable '$nomDossier' (bien sûr de valeur différente pour chaque bouton) dans le script AfficheArbo. Comment je peux dire à mon script ExeUpload, fait une boucle sur chaque bouton du script AfficheArbo.php avec la même variable '$nomDossier' ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    tu entends quoi par boutons de type file? on parle bien des inputs html hin? ( juste pour etre sur, l'abus de langage me dérange pas plus que ca, mais autant ne pas passer a coter de quelque-chose ^^)

    tu vas avoir une multitude d'input files avec les fichiers. on va dire que le client t'envoie toto et tata et qu'il ne remplis pas tutu. ta boucle sur files parcourra juste toto et tata.

    maintenant, a quoi correspond ta variable $dossier?si j'ai bien compris, c'est une destination plus ou moins librement choisie par l'utilisateur?

    dans ce cas la, si tu as un dossier par champs, tu auras par exemple dossier_tata et dossier_toto

    plus qu'a mettre tata sous dossier_tata et toto sous dossier_toto

  5. #5
    Membre à l'essai
    Inscrit en
    Février 2011
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Les boutons de type file sont en effet des input, dsl pour l'amalgame ^^ ...

    NON, $dossier sont les noms des répertoires au plus bas de mon arborescence. Quand on est au plus bas, on créé un input de type file avec comme nom = $dossier. Comme il y a plusieurs dossiers dans ma cible source, $dossier prend différente valeur le temps que l'ensemble des dossiers soient parcourus (méthode par récursivité).

    Je suis dans le cas ou j'ai un dossier par champs. D'accord mais si je viens à ajouter des dossiers dans ma cible source, je serai obligé de modifier mon script ExeUpload à chaque modification, non ?

    Pour que tu comprennes mieux, voici le code du script AfficheArbo ($dossier correspond à $nom) :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?php
     
    include 'restauration.conf.php';
     
    //Execution du démon si validation du formulaire via le boutton "valider"
    echo '<form action="ExeUpload.php" method="POST" enctype="multipart/form-data">';
     
    //execution de la fontion liste_rep avec le répertoire racine en argument.
    liste_rep($src_rep);
     
    //Bouton de validation ou d'annulation. Permet de lancer le démon.
    echo '<input name="valider" value="valider" type="submit" /> <input name="reset" type="reset" />';
     
     
    //methode par recusivité : Ce script parcourt l'arborescence de sauvegarde /media/windows et fait une copie dans /media/data/retore.
    function liste_rep($src_dir){
            //Retour de la fonction : Reçoit true si la variable chemin est un dossier.
            $retVal = false;
            //$Ouverture du dossier source. $dir reçoit un pointeur
            $dir = opendir($src_dir);
            //indentation
            echo "<ul>\n";
            //lecture du pointeur dir.
            //Tant que nom reçoit un dossier et si nom est différent du répertoire courant ou précédent, chemin reçoit le répertoire source + nom du dosser.
            while($nom = readdir($dir)) {
     
                    if ($nom!="." && $nom!="..") {
                            $chemin=$src_dir . "/" . $nom;
                            //Si chemin est un répertoire, retVal reçoit vrai. On relance la function liste_rep avec le chemin pour parcourir les sous dossier.
                            //Si la fonction retourne false, le chemin courant ne possède pas de sous dossier et on créé un bouton de type file.
                            if (is_dir($chemin)){
                                    echo "<li>$nom";
                                    $retVal = true;
                                    if (liste_rep($chemin)==false) {
                                            echo '<input name="'.$nom.'" value="Parcourir" size="120" type="file" />';
                                    }
                                    echo "</li><br />\n";
                            }
                    }
            }
     
            echo "</ul>\n";
     
            //Fermeture du dossier et pointeur
            closedir($dir);
     
     
            //Retour de la fonction
            return $retVal;
     
    }
    ?>
    include 'restauration.conf.php' contient uniquement pour l'instant le dossier source.

Discussions similaires

  1. upload fichier php
    Par tisyo dans le forum Langage
    Réponses: 1
    Dernier message: 18/10/2010, 02h33
  2. Problème upload fichier php
    Par mbsss dans le forum Langage
    Réponses: 1
    Dernier message: 30/04/2009, 13h47
  3. [Upload] upload fichier php
    Par binard dans le forum Langage
    Réponses: 4
    Dernier message: 28/03/2007, 16h11
  4. [Upload] Upload de fichier php ou ssh
    Par BenoitDenis dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2006, 13h38
  5. [Upload] Upload fichier upload.php?fichier=c:\toto.sql
    Par enibris dans le forum Langage
    Réponses: 4
    Dernier message: 04/03/2006, 19h43

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