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] Problème d'upload de fichiers [FAQ]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut [Upload] Problème d'upload de fichiers
    Bonjour,

    Je viens de regrouper plusieurs sites qui se trouvaient sur des serveurs dédiés différents, sur un seul serveur dédié plus gros.

    Suite à ce changement, l'upload de fichier qui marchait parfaitement bien sur les anciens serveurs ne fonctionne plus.

    En fait mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <form action="enreg_modif_avatar.php" method=post enctype='multipart/form-data'>
        <input type='file' name='pimport'>
        <input type=submit value='importer'>
    </form>
    me renvoit $_FILES["pimport"]["size"] à 0 et $_FILES["phimport"]["tmp_name"] vide.

    Je pense à un problème avec enctype='multipart/form-data' mais je ne sais pas comment le régler.
    Le répertoire temporaire dans lequel passe les fichiers a bien les droits d'écriture. Le fichier php.ini est bien configuré pour accepter les upload.

    Je suis à court d'idée, je vous remercie donc par avance pour le moindre élement que vous m'apporterez qui pourait m'éclairer.

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Pour commencer ce serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES["pimport"]["tmp_name"]
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES["phimport"]["tmp_name"]

  3. #3
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    tu peux également vérifier l'ancienneté de ta version de PHP et voir si il ne faut pas utiliser $HTTP_POST_FILES

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Kerod
    Pour commencer ce serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES["pimport"]["tmp_name"]
    et non
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES["phimport"]["tmp_name"]

    Oui pardon j'ai voulu changer le nom de la variable sur mon post mais j'ai raté mon coup .



    Pour le $HTTP_POST_FILES merci mais non ce n'est pas ca :s

  5. #5
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    bonjour est ce que tu px mettre le code php qui permet l'upload comme sa on peut voir claire

  6. #6
    Membre éprouvé
    Avatar de viviboss
    Profil pro
    Inscrit en
    Août 2006
    Messages
    943
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2006
    Messages : 943
    Points : 1 248
    Points
    1 248
    Par défaut
    .... Sujet 300 000 000 000 de fois rabachés.....

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Le formulaire est le suivant :
    <form action="enreg_modif_avatar.php" method=post enctype='multipart/form-data'>
    <input type='file' name='pimport'>
    <input type=submit value='importer'>
    </form>
    Et la page de traitement :
    if($_FILES["pimport"]["size"] >0 && $_FILES["pimport"]["size"]<=$poids_max)
    {
    $repertoireDestination = "images/".$id.".JPG";

    // SI DEJA UNE PHOTO ON LA SUPPRIME
    // ********************************
    @unlink("$repertoireDestination");

    // UPLOAD DE LA PHOTO ET MISE EN PLACE DE LE REPERTOIRE DES AVATARS
    //********************************************************
    if (move_uploaded_file($_FILES["pimport"]["tmp_name"], $repertoireDestination))
    {
    echo "<br>Votre image a été importée avec succés !<br>
    <a href='page.php'>retour</a>";
    }
    else
    {
    echo "Echec de l'upload du fichier";
    }

    }
    else {
    $kopoids=$_FILES["pimport"]["size"]/1024;
    $kopoids=round($kopoids,2);
    $max=$poids_max/1024;
    $max=round($max,0);
    print "<br>Cette image est trop lourde ($kopoids Ko) pour être hébergée sur notre serveur.
    <br>Vous ne pouvez pas importer d'image dépassant $max Ko
    <br>Essayez d'en réduire la taille.<br><br><a href=page.php>retour</a>";
    }

    Ce script fonctionnait parfaitement bien avant le changement de serveur.
    Mais depuis $_FILES ne contient rien après l'envoie du formulaire. Je suis pas sur que ce sois un problème de code mais plutot un problème de configuration du serveur.





    viviboss si tu as un lien je suis preneuse. Personnellement j'ai parcouru des forums toutes la matinée et je n'ai pas trouvé de solution à ce problème.

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Il existe la FAQ c'est pour ca qu'il doit dire ca aussi. Il suffit pas de parcourir le forum il faut voir ca aussi :
    Avant de poster -> FAQ PHP, cours PHP et sources PHP
    Et justement il y a un Q/R dans la FAQ qui traite ce sujet

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    J'ai bien vu la question : Comment envoyer un fichier depuis le navigateur sur le serveur à travers un formulaire HTML ?
    mais elle ne répond pas à mon problème.

    Ce script marchait avant le changement de serveur, c'est à mon avis un problème de configuration pas de code. J'ai déjà testé tous les problèmes basiques que j'aurais pu rencontrer : les droits sur les fichiers ou repertoire temporaire, le fichier php.ini mais je sèche, c'est pour cette raison que je me suis permise de poster.

  10. #10
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    ce que t'as donnée c'est pas le code complet il manque une variable comme $poids_max,et tu dois nous donner l'erreur

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Non non ce sont les parties de code qui concerne l'upload.

    L'erreur c'est que $_FILES["pimport"]["size"]=0 donc il m'affiche :
    "Cette image est trop lourde (0 Ko) pour être hébergée sur notre serveur.
    Vous ne pouvez pas importer d'image dépassant 16 Ko
    Essayez d'en réduire la taille"

    Le problème est à la validation du formulaire, je n'ai plus rien dans $_FILES.
    C'est pour ca que je pense que le problème vient de enctype='multipart/form-data'

  12. #12
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    je crois que j'ai trouvé la solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (move_uploaded_file($_FILES["pimport"]["tmp_name"], $repertoireDestination.$_FILES["pimport"]["name"])){

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Merci d'essayer de m'aider, malheureusement ca ne marche pas.

    En fait ca ne va meme pas jusque la puisque $_FILES["pimport"]["size"]=0, donc ca ne rentre même pas dans le if.
    Le problème est avant l'upload

  14. #14
    Membre habitué Avatar de Akramweb
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2005
    Messages
    227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2005
    Messages : 227
    Points : 197
    Points
    197
    Par défaut
    t'as un bleme au niveau de la variable size;
    tu va juste modifier ce message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    else{
    echo "Echec de l'upload du fichier";
    $kopoids=$_FILES["pimport"]["size"]/1024;
    $kopoids=round($kopoids,2);
    $max=$poids_max/1024;
    $max=round($max,0);
    print "<br>Cette image est trop lourde ($kopoids Ko) pour être hébergée sur notre serveur.
    <br>Vous ne pouvez pas importer d'image dépassant $max Ko
    <br>Essayez d'en réduire la taille.<br><br><a href=index1.php>retour</a>";
    }

  15. #15
    Membre actif
    Homme Profil pro
    Responsable d'une MOE bancaire
    Inscrit en
    Juillet 2003
    Messages
    261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Responsable d'une MOE bancaire

    Informations forums :
    Inscription : Juillet 2003
    Messages : 261
    Points : 226
    Points
    226
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES["pimport"]["size"]=0
    c'est un probleme qui correspond tres souvent à l'envoi d'un fichier avec une taille qui depasse la taille autorisée! dans ce cas la c tres normal que ta condition ne soit pas réalisé.

    Personnellement je te conseille de regarder la configuration de ton serveur :
    - upload_max_filesize
    - max_execution_time
    - max_input_time
    - memory_limit

    est ce que t'as pas par hasard un MAX_FILE_SIZE dans ton formulaire d'envoi?

    tu peux nous donner les différentes valeurs si tu veux

    EDIT : tu peux nous donner au meme temps le code ton formulaire d'envoi pour voir c'est quoi cette histoire en enctype?

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    J'ai déjà regardé le php.ini et je vois pas le soucis.
    Je me fais jeter avec une image de 3ko

    J'ai les caractéristiques suivantes :
    upload_max_filesize = 2M
    max_execution_time = 30
    max_input_time = 60
    memory_limit = 8M


    Mon formulaire est le suivant :
    <form action="enreg_modif_avatar.php" method=post enctype='multipart/form-data'>
    <input type='file' name='pimport'>
    <input type=submit value='importer'>
    </form>
    Je pense que le problème vient de la parce que dès que je lance la page
    enreg_modif_avatar.php le contenu du $_FILE est vide, donc ce n'est pas un problème d'upload puisqu'il n'essait même pas de le faire il ne rentre pas dans le if

  17. #17
    Expert confirmé
    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 : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    La syntaxe correcte est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form action="enreg_modif_avatar.php" method="post" 
    enctype="multipart/form-data">
    <input type="file" name="pimport"/>
    <input type="submit" value="importer"/>
    </form>

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Ce n'est pas non plus ça mais merci quand même.

    J'ai affiché $_FILE sur la page appelé par le formulaire et ca donne ca :
    Array ( [pimport] => Array ( [name] => Fe.gif [type] => [tmp_name] => [error] => 3 [size] => 0 ) )


    et le fichier mime.types contient bien multipart/form-data

  19. #19
    Expert confirmé
    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 : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Dans le php.ini, quel est le nom de ton dossier temporaire ?

    upload_tmp_dir = répertoire permet de définir le répertoire temporaire permettant d'accueillir le fichier uploadé.

  20. #20
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    J'avais lu que si on ne choississait pas de répertoire temporaire le repertoire temp serait mis par défaut.
    J'ai quand même décidé de le mettre moi même dans le php.ini pour voir et après avoir relancé apache ca n'a rien changé.

    Il semblerait qu'il y ai eu un problème lors de l'installation d'apache ou php, j'ai contacté mon hébergeur ils interviendront demain. Je vous dirais si ca a fonctionné
    Merci encore pour votre aide

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

Discussions similaires

  1. [Upload] Problème d'upload fichier
    Par perlgirl dans le forum Langage
    Réponses: 3
    Dernier message: 19/09/2007, 02h39
  2. [Upload] Problème de droit de fichier
    Par judas54 dans le forum Langage
    Réponses: 9
    Dernier message: 20/02/2007, 16h13
  3. [Upload] Problème d'upload de fichier
    Par Halukard dans le forum Langage
    Réponses: 10
    Dernier message: 21/11/2006, 19h36
  4. [Upload] Problème pour uploader un fichier dans mon code
    Par Peuplarchiste dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2006, 09h48
  5. [Upload] Problème d'upload de fichiers
    Par FredMines dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2006, 17h13

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