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 :

Formulaire d'upload de fichier


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut Formulaire d'upload de fichier
    Bonjour a tous
    J ai tente de realiser un formulaire d upload en me basan sur des tutos
    voici mes pages:
    upload.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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form method="post" action="reception.php?metier=<?php echo $_GET[metier] ?>" enctype="multipart/form-data">
         <label for="mon_fichier">Fichier (Format jpg | max. 1Mo):</label><br />
         <input type="hidden" name="MAX_FILE_SIZE" value="1048576" />
         <input type="file" name="mon_fichier" id="mon_fichier" /><br />
         <label for="titre">Titre du fichier (max 50 caractères):</label><br />
         <input type="text" name="titre" value="<?php echo $_GET[metier]; ?>" id="titre" /><br />
         <label for="description">Description de votre photo (max 255 caractères):</label><br />
         <textarea name="description" id="description"></textarea><br />
         <input type="submit" name="submit" value="Envoyer" />
    </form>
    </body>
    </html>
    et reception.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
    <?php
    echo "nom du fichier : ";
    echo $_FILES['icone']['name'];     //Le nom original du fichier, comme sur le disque du visiteur, (exemple: mon_icone.png).
    echo '<br/>';
    echo "type du fichier : ";
    echo $_FILES['icone']['type'];     //Le type du fichier. Par exemple, cela peut être "image/png"
    echo '<br/>';
    echo " taille du fichier en octets : ";
    echo $_FILES['icone']['size'];     //La taille du fichier en octets
    echo '<br/>';
    echo 'adresse du fichier uploade : ';
    echo $_FILES['icone']['tmp_name']; //L'adresse vers le fichier uploadé dans le répertoire temporaire
    echo '<br/>';
    echo "code erreur : ";
    echo $_FILES['icone']['error'];    //Le code d'erreur, qui permet de savoir si le fichier a bien été uploadé
    ?>
    <?php
    echo '<br/>';
    if ($_FILES['icone']['error'] > 0) echo "Erreur lors du tranfsert";
    else 
    {
    echo "Transfert OK";
    echo '<br/>';
    $extensions_valides = array( 'jpg' , 'jpeg');
    //1. strrchr renvoie l'extension avec le .
    //2. substr(chaine,1) ignore le premier caractère de chaine
    //3. strtolower met l'extension en minuscule
    $extension_upload = strtolower(  substr(  strrchr($_FILES['icone']['name'], '.')  ,1)  );
    if ( in_array($extension_upload,$extensions_valides) ) echo "Extension correcte";
    else 
    {
    	echo "Mauvaise extension";
    	echo $extension_upload;
    	echo '<br/>';
    }
    ?>
    <?php /*
    $image_sizes = getimagesize($_FILES['icone']['tmp_name']);
    if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) $erreur = "Image trop grande";
    */ ?>
    <?php
    $nom = "metiers/$_GET[metier].{$extension_upload}";
    $resultat = move_uploaded_file($_FILES['icone']['tmp_name'],$nom);
    if ($resultat) echo "Transfert réussi";
    else echo "ERREUR TRANSFERT";
    }
    ?>

    Le probleme c est que ca ne marche pas , rien n apparait sur ma page reception .php ni nom du fichier rien en fait ,
    Le tableau $_FILES est vide...
    du coup ca fait ERREUR TRANSFERT si quelqu un pouvait venir a mon secours

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 302
    Par défaut
    A ce que je voit tu ne donnes pas le meme nom du fichier a uploader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="mon_fichier" id="mon_fichier" />
    Et dans ta page de traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_FILES['icone']['name'];
    Il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_FILES['mon_fichier']['name'];
    J'espere que cela fonctionnera mieux

  3. #3
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="mon_fichier" id="mon_fichier" />
    Tu dois utiliser $_FILES['mon_fichier'] et non pas $_FILES['icone'].

  4. #4
    Membre émérite Avatar de |PaRa-BoL
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 738
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_FILES['mon_fichier']
    Vu que le "name" de ton input "file" est ainsi

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 165
    Par défaut
    merci pour toute ces reponse , g plus k un seul souci

    Warning: move_uploaded_file(/metiers/dinandier.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home.44/g/u/i/.../www/admin/metiers/reception.php on line 43

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/var/log/tmp/phpLeUhDp' to '/metiers/dinandier.jpg' in /home.44/g/u/i/.../www/admin/metiers/reception.php on line 43
    ERREUR TRANSFERT

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    La dernière version du code serait utile. Mais a priori, je dirai qu'il ne trouve pas le dossier de destination...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Essaye comme ça plutot:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom = "./metiers/".$_GET['metier'].$extension_upload;
    Vérifie la validité du chemin avec

Discussions similaires

  1. [HTML] formulaire d' upload de fichiers
    Par libuma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 19/06/2008, 17h19
  2. Formulaire d'upload de fichier avec paramètre
    Par HSMan dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 21/04/2008, 20h47
  3. [Upload] upload de fichier sans formulaire
    Par gforce dans le forum Langage
    Réponses: 8
    Dernier message: 04/04/2007, 11h18
  4. formulaire + upload de fichier
    Par xave dans le forum ASP
    Réponses: 9
    Dernier message: 14/06/2006, 17h33
  5. [Upload] Upload de fichier par formulaire
    Par discogarden dans le forum Langage
    Réponses: 4
    Dernier message: 31/03/2006, 19h17

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