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] Upload de fichier


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bambou
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 192
    Par défaut [Upload] Upload de fichier
    Bonjour,

    J'essaye de faire un formulaire qui comporte un upload de fichier. Lorsque je test d'uplader un fichier, ca ne marche pas, et je n'arrive pas a avoir un descriptif de l'erreur qui se produit. Voici le code que j'utilise:
    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
        // Upload picture
        if(!empty($_FILES['picture']['tmp_name']) AND is_uploaded_file($_FILES['picture']['tmp_name'])){
          //Verifying size
          if(filesize($_FILES['picture']['tmp_name'])<51200){
            //Verifying Type
            list($largeur, $hauteur, $type, $attr)=getimagesize($_FILES['picture']['tmp_name']);
            //If Type is GIF/JPEG/PNG (Respectivly 1/2/3) then the picture is copying
            if($type==1){
              $ext = ".gif";
            }
            if($type==2){
              $ext = ".jpg";
            }
            if($type==3){
              $ext = ".png";
            }
            if($type==3 || $type==2 || $type==1){
              $picture = "../uploadedIMG/".$barcode."-".$shelf."-".$concentration."-".$row."-".$col."-".$time.$ext;
              //Copie le fichier dans le répertoire de destination
              if(!move_uploaded_file($_FILES['picture']['tmp_name'], $rep)){
                $error = 'Error during picture copy on the server, try again later or contact an administrator';
              }
            }else{$error = "Picture must be a jpeg, gif or png file";}
          }else{$error = "Picture is too big, please compress it!";}
        }else{$error = "Error during upload : ".$_FILES['picture']['error'];}
    // END Upload Picture
    et voici la configuration du php.ini :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ;;;;;;;;;;;;;;;;
    ; File Uploads ;
    ;;;;;;;;;;;;;;;;
     
    ; Whether to allow HTTP file uploads.
    file_uploads = On
     
    ; Temporary directory for HTTP uploaded files (will use system default if not
    ; specified).
    ;upload_tmp_dir =
     
    ; Maximum allowed size for uploaded files.
    ;set a 200M pour test
    upload_max_filesize = 200M
    Le seul retour que j'ai, est l'affichage du message d'erreur :
    Error during upload :
    et enfin, voici l'HTML...on sait jamais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input class="input" type="file" name="picture" />
    merci pour votre aide

  2. #2
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    $rep est bien défini?

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Je te recommande d'utiliser switch plutôt que de mettre des if() à la suite comme cela.

    Rassure-moi, tu fais bien echo $error; quelque part ?

  4. #4
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    Ah désolé j'ai pas vu de quel if sortait l'erreur... Sinon, au cas où, as-tu bien mis un champ MAX_FILE_SIZE?

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Oops pardon, je n'avais pas vu non plus... Pour me faire pardonner, voici comment j'aurais écrit ton code :
    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
    <?php
     
    $error = NULL;
     
    // Upload picture
    if(empty($_FILES['picture']['tmp_name']) or !is_uploaded_file($_FILES['picture']['tmp_name']))
    {
        $error = "Error during upload : ".$_FILES['picture']['error'];
    }
    else
    {
        //Verifying size
        if(filesize($_FILES['picture']['tmp_name']) >= 51200)
        {
            $error = "Picture is too big, please compress it!";
        }
        else
        {
            //Verifying Type
            list($largeur, $hauteur, $type, $attr)=getimagesize($_FILES['picture']['tmp_name']);
     
            //If Type is GIF/JPEG/PNG (Respectivly 1/2/3) then the picture is copying
            switch($type){
                case IMAGETYPE_GIF:
                    $ext = '.gif';
                break;
     
                case IMAGETYPE_JPEG:
                    $ext = '.jpg';
                break;
     
                case IMAGETYPE_PNG:
                    $ext = '.png';
                break;
     
                default:
                    $error = 'Picture must be a jpeg, gif or png file';
            }
     
            if(empty($error))
            {
                $picture = "../uploadedIMG/".$barcode."-".$shelf."-".$concentration."-".$row."-".$col."-".$time.$ext;
                //Copie le fichier dans le répertoire de destination
                if(!move_uploaded_file($_FILES['picture']['tmp_name'], $rep)){
                    $error = 'Error during picture copy on the server, try again later or contact an administrator';
                }
            }
        }
     
        if(!empty($error)){
            echo $error;
        }
    }
    // END Upload Picture
     
    ?>
    Tu peux trouver la gestion d'erreurs ici : http://g-rossolini.developpez.com/tu...p/formulaires/

  6. #6
    Membre confirmé Avatar de bambou
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 192
    Par défaut
    Bonjour,

    desole pour le retard ( long week-end ) et merci beaucoup pour toutes ses reponses
    Citation Envoyé par Anduriel
    $rep est bien défini?
    erf..effectivement $rep n'est pas defini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!move_uploaded_file($_FILES['picture']['tmp_name'], $rep)){
    a ete remplace par (cf code du 1er post) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!move_uploaded_file($_FILES['picture']['tmp_name'], $picture)){
    Citation Envoyé par yogui
    Rassure-moi, tu fais bien echo $error; quelque part ?
    le echo est fait plus bas dans le code, mais il est la

    Citation Envoyé par Anduriel
    Sinon, au cas où, as-tu bien mis un champ MAX_FILE_SIZE
    erf...non, je suis alle voir le lien de yogui ou il y a un champs MAX_FILE_SIZE, de type hidden qui est utilise, mais je ne comprend pas a quoi il sert...

    Citation Envoyé par yogui
    Tu peux trouver la gestion d'erreurs ici : http://g-rossolini.developpez.com/tu...p/formulaires/
    J'ai remplace mes if() par le switch, merci pour le code
    Pour le lien, le serveur ou va tourner la page est sous php 4, donc certaine parties du code ne vont pas fonctionner...

    ...

    Je pense avoir trouve d'ou venait l'erreur...pour d'obscures raisons, mon boss m'a demande de faire le formulaire avec GET comme methode d'envoi et apparemment (selon la console javascript de firefox), il faut faire du POST pour faire de l'upload d'image...je vais changer la methode et tester voir si c'est mieu...

  7. #7
    Membre confirmé Avatar de bambou
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 192
    Par défaut
    ok c'etait bien due au fait que j'envoyais les info par GET et non par POST

    Donc je vais "tag resolu" le post, mais si vous pouvez m'expliquer ( en PM eventuelement) tout de meme le coup du MAX_FILE_SIZE et pour passer le code du lien de yogui pour qu'il soit compatible php 4, ce serait vraiment sympa

    En tout cas, merci beaucoup a tous les deux pour votre coup de pouce

    a bientot

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Il n'y a guère que quelques constantes qu ne sont pas disponibles en PHP4. Essaie, si ça marche c'est bon.
    Le MAX_FILE_SIZE n'est pas géré par tous les navigateurs.

  9. #9
    Membre confirmé Avatar de bambou
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2004
    Messages : 192
    Par défaut
    d'accord, encore merci pour tout!

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

Discussions similaires

  1. [Upload] upload d'un fichier avec apostrophe
    Par SegmentationFault dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2006, 10h37
  2. [Upload] Upload de GROS fichiers en php
    Par osscour dans le forum Langage
    Réponses: 21
    Dernier message: 26/05/2006, 14h13
  3. [Upload] Upload d'un fichier excel sur un site web
    Par oldscrout dans le forum Langage
    Réponses: 3
    Dernier message: 31/03/2006, 10h09
  4. [Upload] Upload, renommer le fichier
    Par Alain15 dans le forum Langage
    Réponses: 15
    Dernier message: 14/02/2006, 14h06
  5. [Upload] Upload de gros fichiers
    Par Rémiz dans le forum Langage
    Réponses: 8
    Dernier message: 07/01/2006, 11h44

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