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 :

Afficher sur une page cible le dernier fichier uploader par l'utilisateur [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Afficher sur une page cible le dernier fichier uploader par l'utilisateur
    Bonjour, tout d'abord, comme c'est mon premier post, je voudrais remercier tout les gens sur le forum et sur le chat qui se dévoue pour aider les gens.

    Je voudrais aussi remercier ceux qui était sur le chat développement web/Jeux A pendant la nuit d'hier pour leurs excellente accueil.

    Sans plus attendre passons au choses sérieuses :

    Je suis en train d'apprendre le php, je ne connait pour l'instant rien sur les bases de données et sa fait deux semaine que je galère sur les formulaire d'upload de fichier.

    Au bout d'une semaine j'ai, grâce à ce site, réussie à (à peu près , mais j'y travaille) comprendre comment fonctionner la partie upload du formulaire.

    Je ne sais pas en revanche comment afficher sur le fichier uploader sur une page cible.

    Concrètement :

    - Tout mes dossier et mes fichiers sont contenue dans un projet "tests".

    - J'ai 2 pages : "form.php" qui contient le xhtml pour un formulaire d’envoi d'image et "cible.php" qui contient le php pour le faire fonctionner.

    - Les images sont uploadées dans un dossier "uploads".

    - J'aimerais que l'utilisateur puisse voir sur la page cible.php qui s'affiche à la validation du formulaire, la dernière image qu'il a uploader.

    - Je ne connais (un bien grand mot) que le xhtml et le php. (et aucun language de type sql)

    form.php :

    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
     
    <fieldset>
     <legend>Liste de formulaires :</legend>
     
     <form action="cible.php" method="post" enctype="multipart/form-data">
    <!-- Plein de formulaires -->
    <p><label>Formulaire d'envoi d'images :</label></p>
    <p><input type="hidden" name="uploads" id="uploads" /></p>
    <p><input type="file" name="monfichier" id="monfichier"/></p>
     
    <p><input type="submit" value="Envoyer les formulaires" name="envoyer" /></p>
     </form>
     
     </fieldset>
           </body>
    </html>


    cible.php :

    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
    54
    55
    56
    57
    58
     
    <!-- La partie qui nous intéresse -->
     <p>
    <?php
         if (isset ($_POST['case']))
         {
         echo '4) Mais quel courage !';
         }
         else
         {
         echo '4) Mais quel trouillard(e) !';
         } 
    ?>
    </p>
     
    <p>5) Votre avis sur les haricots verts : <?php echo ($_POST['haricots_verts']); ?></p>
     
    <p>6) Votre image :<?php
     
    $dossier = 'uploads/';
    $fichier = basename($_FILES['monfichier']['name']);
    $taille_maxi = 1000000;
    $taille = filesize($_FILES['monfichier']['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['monfichier']['name'], '.'); 
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
         $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
    }
    if($taille>$taille_maxi)
    {
         $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
         //On formate le nom du fichier ici...
         $fichier = strtr($fichier, 
              'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
              'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
         if(move_uploaded_file($_FILES['monfichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
         {
              echo ' Upload effectué avec succès !';
         }
         else //Sinon (la fonction renvoie FALSE).
         {
              echo ' Echec de l\'upload !';
         }
    }
    else
    {
         echo $erreur;
    }
     
    ?>
     
    </p>
    Merci d'avance pour votre aide.

  2. #2
    Inactif  

    Homme Profil pro
    développeur Vala
    Inscrit en
    Février 2011
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : développeur Vala
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 478
    Points : 3 700
    Points
    3 700
    Par défaut
    bonsoir
    il te faut déjà dans ton code html un input file pour uploader l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form enctype="multipart/form-data" action="cible.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
    Choose a file to upload: <input name="upload" type="file" /><br />
    <input type="submit" value="envoi" />
    </form>
    puis, dans ta page cible.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $target_path = "uploads/"; // remplace uploads par l'url du dossier d'images
     
    $target_path = $target_path . basename( $_FILES['upload']['name']); 
     
    if(move_uploaded_file($_FILES['upload']['tmp_name'], $target_path)) {
        echo '<img src="'.$target_path.'" />';
    } else{
        echo "erreur";
    }

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci Beaucoup, tu me sort de 2 semaines de galère !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/06/2009, 15h30
  2. [MySQL] Associer deux champs et les afficher sur une page
    Par dreamquad dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 14/04/2009, 13h40
  3. Réponses: 3
    Dernier message: 21/08/2008, 16h07
  4. Réponses: 6
    Dernier message: 21/04/2006, 11h22
  5. Un lien qui ouvre sur une page spécifique d'un fichier
    Par chpog dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/08/2005, 14h56

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