Problème d'upload
Répondre à la discussion
Affichage des résultats 1 à 27 sur 27

Problème d'upload



  1. #1
    invite7e9df035

    Problème d'upload


    ------

    Bonjour,
    Je suis en train de créer un site et j'ai un problème pour heberger des images sur mon site. Je voudrais que les gens envoye une photos pour ensuite l'avoir en avatar.

    Voici mon formulaire :

    Code HTML:
    <FORM method="POST" action="cible-avatar.php" ENCTYPE="multipart/form-data">
    <INPUT type=hidden name=MAX_FILE_SIZE  VALUE=2048>
    <INPUT type=file name="fichier">
    <INPUT type=submit value="Envoyer">
    </FORM>

    Et voici mon traitement (Le code est très simple vu que je n'arrive pas a envoyer la photo, sa ne sert a rien que je me complique pour l'instant. J'améliorerais le code quand j'arriverais a upload.) :

    Code PHP:
    <?php $nom "/html/images_upload/";
    $resultat move_uploaded_file($_FILES['fichier']['tmp_name'],$nom);
    if (
    $resultat) echo "Transfert de l'icone réussi<br/>";
    ?>
    Le problème c'est que dans mon répertoire /html/images_upload/ il n'y a pas la photo que j'envoie, si quelqu'un pouvait m'aider.
    Merci d'avance.

    -----

  2. #2
    Arius

    Re : Problème d'upload

    Bonjour, attention aux guillemets en html et à la syntaxe en PHP !

    Code:
    // ne jamais oublier les guillemets sinon ça ne marche pas
    <INPUT type="hidden" name="MAX_FILE_SIZE"  VALUE="2048">
    <INPUT type="file" name="fichier">
    <INPUT type="submit" value="Envoyer">
    </FORM>
    Ce code est erroné :
    Code:
    <?php$nom="/html/images_upload/";
    $resultat=move_uploaded_file($_FILES['fichier']['tmp_name'],$nom); 
    if($resultat)echo"Transfertdel'iconeréussi<br/>"; 
    ?>
    Code:
    <?php
    $nom="/html/images_upload/"; 
    $resultat=move_uploaded_file($_FILES['fichier'],['tmp_name'],$nom); 
    if($resultat) { // attention aux accolades 
    echo"Transfert de l' icone réussi<br/>"; 
    }
    
    ?>

  3. #3
    invite7e9df035

    Re : Problème d'upload

    Cela na rien changé, sa ne marche toujours pas. D'ailleurs, il y a une erreur dans
    ($_FILES['fichier'],['tmp_name'],$nom)
    il n'y a pas de , entre fichier et tmp_name. De plus, ces codes je les ai copié-collé (avec quelques modif) donc je pense que l'erreur vient d'une modif, en particulier de $nom car je ne suis pas sur du chemin. J'ai copié le chemin qu'il y a dans filezilla, est-ce bon ?

  4. #4
    invite7e9df035

    Re : Problème d'upload

    J'ai trouvé une erreurs en plus ($nom="images_upload" et non "/html/images_upload/") et sa na rien changé mais la principale erreur, elle vient de MAX_FILE_SIZE, je pensé que c'était en Ko (or c'est en octet) donc mon image était trop grosse.
    Après avoir modifié cette valeur, j'ai maintenant 2 messages d'erreurs :
    Warning: move_uploaded_file(images_uplo ad) [function.move-uploaded-file]: failed to open stream: Is a directory in /home/m/monjardin/html/cible-avatar.php on line 3

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpWmPeH3' to 'images_upload' in /home/m/monjardin/html/cible-avatar.php on line 3

  5. A voir en vidéo sur Futura
  6. #5
    invite765732342432
    Invité

    Re : Problème d'upload

    Citation Envoyé par valentin358 Voir le message
    "/html/images_upload/"
    Es-tu sur de ce chemin ?
    n'est-ce pas plutôt:
    ./html/images_upload/ (chemin relatif commençant par .
    ou quelquechose comme:
    /var/www/html/images_upload/ (je ne connais pas beaucoup de distributions ayant à la racine un /html)

    Note pour Arius:
    Attention quand tu aides les gens à ne pas les induire en erreur.
    Le code HTML, quoique pas tout à fait à la norme, fonctionne et pire tu fais des corrections dans le code PHP qui transforment un truc bon en un truc faux... c'est génant !

  7. #6
    invite7e9df035

    Re : Problème d'upload

    faith, regarde mon dernier message, juste avant toi. Ce n'est pas "/html/images_upload/" mais "images_upload". Dans le dossier "html", il y a ma page web ainsi que le dossier où j'enregistre l'image donc normalement c'est bien "images_upload".

  8. #7
    cristolab

    Re : Problème d'upload

    Bonjour,

    Essaye ca :

    Code:
    if (is_uploaded_file($HTTP_POST_FILES['fichier_post']['tmp_name']) )
    {
      $fichier_tmp_name = $HTTP_POST_FILES['fichier_post']['tmp_name'];
      $image_dest = "images_upload/test.jpg";
    
      copy($fichier_tmp_name,$image_dest);
    
    }
    Ce code fonctionne sur Serveur Free (PHP 5.0).
    Pense aussi à utiliser des chemins relatifs à ton site.
    Vérifie aussi que coté serveur, tu sois autorisé à uploader à la taille que tu souhaites (httpd.conf sous apache ???)

    (par contre ton topic aurait plus sa place sur "Open Source" que sur problème reseau... tu aurais plus de personnes qui pourrait t'aider je pense )
    Bon Courage

  9. #8
    invite7e9df035

    Re : Problème d'upload

    J'ai essayé ton code et la seule différence c'est qu'il n'y a plus de message d'erreur sinon sa ne marche toujours pas.

  10. #9
    cristolab

    Re : Problème d'upload

    Passons en mode débug :

    Code:
    echo "--001 DEBUT <BR>";
    
    if (is_uploaded_file($HTTP_POST_FILES['fichier_post']['tmp_name']) )
    {
    echo "--002 IS UPLOADED OK <BR>";
    
      $fichier_tmp_name = $HTTP_POST_FILES['fichier_post']['tmp_name'];
    
    echo "--003 Nom du Fichier = $fichier_tmp_name <BR>";
    
      $image_dest = "images_upload/test.jpg";
    
      copy($fichier_tmp_name,$image_dest);
    
    echo "--004 <IMG SRC='$image_dest'><BR>";
    
    }
    
    echo "--005 ERREUR= fichier non uploader !";
    Bon j'ai rajouté les "echos" à la vite (tu peux les arranger à ta sauce), mais le principe est de débugger ton source. Tu seras fixé rapidement !

  11. #10
    invite7e9df035

    Re : Problème d'upload

    Merci de m'aidé, voici ce que j'ai :
    --001 DEBUT
    --005 ERREUR= fichier non uploader !
    .

    J'ai une question a propos de ton code, pourquoi tu mets $HTTP_POST_FILES['fichier_post'] et non $HTTP_POST_FILES['fichier'] (car mon formulaire s'appel "fichier" et non "fichier_post"? J'ai aussi essayé en retirant _post et c'est le même bug.

  12. #11
    cristolab

    Re : Problème d'upload

    Oui bien sur il faut que tu mettes le nom de la variable de ton formulaire à poster... Donc ['fichier'] et non ['fichier_post'] ! (c'est un copier coller un peu rapide, désolé) !

  13. #12
    invite7e9df035

    Re : Problème d'upload

    C'est toujours le même bug sans le "_post".

  14. #13
    cristolab

    Re : Problème d'upload

    Rajoute le format binaire à ta variable "fichier"
    Code:
    <INPUT type=file name="fichier" enctype='multipart/form-data'>
    Ca devrait être mieux comme ca

  15. #14
    invite7e9df035

    Re : Problème d'upload

    Il y est déjà :
    <FORM method="POST" action="cible-avatar.php" ENCTYPE="multipart/form-data">

  16. #15
    invite7e9df035

    Problème d'upload

    Bonjour,
    Je suis en train de créer un site et j'ai un problème pour heberger des images sur mon site. Je voudrais que les gens envoye une photos pour ensuite l'avoir en avatar (j'ai déjà créer un topic mais apparament il n'est pas a sa place donc je le refait ici mais vous pouvez le voir ici).

    Voici mon formulaire :

    Code HTML:
    <FORM method="POST" action="cible-avatar.php" ENCTYPE="multipart/form-data">
    <INPUT type="hidden" name="MAX_FILE_SIZE" VALUE="11000000">
    <INPUT type="file" name="fichier">
    <INPUT type="submit" value="Envoyer">
    </FORM>

    Et voici mon traitement (Le code est très simple vu que je n'arrive pas a envoyer la photo, sa ne sert a rien que je me complique pour l'instant. J'améliorerais le code quand j'arriverais a upload.) :

    Code PHP:
    $LeNomDeTonImage=$_FILES['fichier']['name'];
    $nom="/images_upload/"
    $resultat=move_uploaded_file($_FILES['fichier']['tmp_name'],$nom.$LeNomDeTonImage);
    if(
    $resultat
    // attention aux accolades 
    echo"Transfert de l'icone réussi<br/>"

    Quelqu'un m'a proposé un autre code mais j'ai vu quelque part que la fonction "copy" etait à évité :
    Code PHP:
    echo "--001 DEBUT <BR>";

    if (
    is_uploaded_file($HTTP_POST_FILES['fichier']['tmp_name']) )
    {
    echo 
    "--002 IS UPLOADED OK <BR>";

      
    $fichier_tmp_name $HTTP_POST_FILES['fichier']['tmp_name'];

    echo 
    "--003 Nom du Fichier = $fichier_tmp_name <BR>";

      
    $image_dest "images_upload/test.jpg";

      
    copy($fichier_tmp_name,$image_dest);

    echo 
    "--004 <IMG SRC='$image_dest'><BR>";

    }

    echo 
    "--005 ERREUR= fichier non uploader !"
    Le code avec "copy" me met 2 messages :
    Code:
    --001 DEBUT
    --005 ERREUR= fichier non uploader !
    alors que celui avec "move_uploaded_file" affiche 2 erreurs :
    Code:
    Warning: move_uploaded_file(/images_upload/alapin-chabal.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/m/monjardin/html/cible-avatar.php on line 4
    
    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpolJkvq' to '/images_upload/alapin-chabal.jpg' in /home/m/monjardin/html/cible-avatar.php on line 4
    En règle général, le problème c'est que dans mon répertoire /html/images_upload/ il n'y a pas la photo que j'envoie.

    Je remercie d'avance ce qui vont m'aidé.

  17. #16
    zoup1

    Re : Problème d'upload

    J'ai pas regardé le code dans le détail mais il me semble que tu cherches à déplacer l'image vers /html/images_upload or ce que tu demandes dans ton code c'est de déplacer l'image vers /images_upload
    du coup le dossier ne doit pas exister ce qui provoque une erreur.
    Je te donne une idée, tu me donnes une idée, nous avons chacun deux idées.

  18. #17
    invite7e9df035

    Re : Problème d'upload

    Voici une image pour vous éclairez : Nom : aide10.jpg
Affichages : 93
Taille : 105,6 Ko

    Merci de suivre ces quelques conseils pour poster une image dans le forum.

    Pour la modération,

    yoda1234.
    Dernière modification par yoda1234 ; 26/04/2009 à 04h58.

  19. #18
    cristolab

    Re : Problème d'upload

    Non, il y est déjà pour le type du Formulaire... Pas pour le type de la variable 'fichier'. Regarde bien mon exemple !

  20. #19
    cristolab

    Re : Problème d'upload

    Je t'ai repondu sur le Topic d'origine (dans Securité Reseau)

    Pour la fonction copy() dans ce cas précis ca marche très bien... Le truc c'est que ca copie betement sans demander confirmation si un fichier destination existe deja.
    Ceci dit Move_uploaded_File() fonctionne très bien aussi.
    Dans les deux cas tu peux tester leur codes retour.

    Donc rajoute cet attribut : [B] enctype='multipart/form-data' dans ton tag Fichier (et pas uniquement dans le Tag de définition de ton formulaire). Et ca doit marcher sans problème.

  21. #20
    yoda1234

    Re : Problème d'upload

    Fusion des deux fils, si tu estimais que ta discussion devait être déplacée, tu aurais dû demander à un modérateur de le faire et non re-créer un autre fil.
    notre charte stipule que:
    Les doublons ne sont pas autorisés. Merci de ne pas poster le même sujet dans plusieurs rubriques pour éviter l'éparpillement des discussions.
    Merci d'en tenir compte la prochaine fois.
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

  22. #21
    invite7e9df035

    Re : Problème d'upload

    je l'est mis et sa na rien changé.

  23. #22
    cristolab

    Re : Problème d'upload

    Salut,

    Les "echos (--..)" que je t'ai proposé de rajouter dans ton code, ne sont pas là pour que ca marche mieux, mais juste pour t'aiguiller dans ta rechercher. Ca s'appelle débugger.
    Si tu as toujours ca en resultat :

    Code:
    --001 DEBUT
    --005 ERREUR= fichier non uploader !
    C'est que ton fichier n'a pas été envoyé au serveur !
    Essaye de comprendre et de simplifier au maximum ton code PHP ainsi que ta page HTML qui contient ton formulaire.
    Par exemple dans ton HTML , tu peux retirer la ligne suivante
    Code:
    <INPUT type="hidden" name="MAX_FILE_SIZE" VALUE="11000000">
    Ça sert juste à empêcher l'utilisateur d'envoyer un trop gros fichier... Pour l'instant ton problème (et la vérité) est ailleurs.
    Essaye aussi avec un autre navigateur !
    Car les scripts que je t'ai donné, je sais qu'ils fonctionnent bien !
    Bon Courage

  24. #23
    invite7e9df035

    Re : Problème d'upload

    J'AI REUSSI!!!!!
    J'ai un peut bidouillé le code de cristolab (qui contenait quelques erreur telsque l'echo n°5 qui était obligé d'apparaître à chaque fois) et j'ai réussi à stocké l'image. Voici le code fini :
    Code PHP:
    <?php
    echo "--001 DEBUT <BR>";
    if (
    is_uploaded_file($_FILES['fichier']['tmp_name']) )
    {
        echo 
    "--002 UPLOAD OK <BR>";
        
        
    $fichier_tmp_name $_FILES['fichier']['tmp_name'];
        echo 
    "--003 Nom du Fichier = $fichier_tmp_name <BR>";
        
        
    $image_dest 'images_upload/';
        
    $NomImage $_FILES['fichier']['name'];
        
    move_uploaded_file($fichier_tmp_name,$image_dest.$NomImage);
        
        
    $imagevue $image_dest.$NomImage;
        echo 
    "--004 <IMG SRC='$imagevue'><BR>";
    }
    else
    {
    echo 
    "--005 ERREUR= fichier non uploader !";
    }
    ?>
    Merci a tous ceux qui m'ont aidé.

  25. #24
    cristolab

    Re : Problème d'upload

    Les "echos" ne faisaient pas parti de mon script initial, je les ai rajoutés vite fait dans le script pour te donner une idée de ce qu'il fallait faire pour débugger... Et puis les echos #2 et #3 qui apparaissent devaient déjà t'annoncer la bonne nouvelle...

    "Good Job" et bon courage..

  26. #25
    invite7e9df035

    Re : Problème d'upload

    Il me reste une dernière question. J'ai donc stocké mon image sur mon serveur et je veut l'affiché. J'ai fait un code pour la ressortir mais je ne sais pas comment faire pour qu'il trouve la bonne extention :
    Code PHP:
    $extension_upload = array('jpg','JPG','jpeg','JPEG','gif','GIF','png','PNG');
    $imagevue 'avatars/'.$_SESSION['pseudo'].'.'.$extension_upload;
    echo 
    "<IMG SRC='$imagevue'>"
    Le $_SESSION['pseudo'] correspond au nom de l'image et le problème c'est le $extension_upload.
    J'ai aussi remarqué que la fonction
    Code PHP:
    strrchr($_FILES['fichier']['name'], '.'
    ne renvoyer pas le point.

  27. #26
    cristolab

    Re : Problème d'upload

    Salut,

    Personnellement je n'aurais pas utiliser un fichier image lié au pseudo... Ca limite déjà, une image par pseudo.

    J'aurais plutôt, stocké le nom complet du fichier téléchargé dans la base de données (rattaché aux informations de ton utilisateur) et ainsi aucun problème d'extension. C'est surtout plus simple à développer (si tu utilises une base de données tel que MySQL).

    Un petit conseil : Essaie de faire au plus simple, car quand tu voudras faire évoluer ton code, tu risques de vraiment t'embourber les neurones ! Alors si les scripts que tu récupères ici et là sont complexes, essaie de les alléger au maximum pour se contenter de ce que tu veux faire.

    Sinon tu feras attention, tu as mis <IMGSRC=...> au lieu de <IMG SRC=...>

  28. #27
    invite7e9df035

    Re : Problème d'upload

    Justement le but c'est de n'avoir qu'une seule image par compte puisque sa sera l'avatar donc pas besoin dans avoir 36!

    Pour ce qui est de <IMGSRC=...>, dans mon fichier c'est <IMG SRC=...> donc il y a du avoir une erreur sur le site.

    J'ai stocké le nom sur mysql et sa marche, je n'y avait pas pensé.
    MERCI cristolab

Discussions similaires

  1. problème avec un lecteur mp4(le problème vient de l'ordinateur)
    Par mat_the_bad_boy dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 29/10/2007, 16h53
  2. Problème d'upload images
    Par invitee0ba72ca dans le forum Internet - Réseau - Sécurité générale
    Réponses: 1
    Dernier message: 19/01/2007, 07h57
  3. interface d'upload
    Par invitee17aeca5 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 09/02/2005, 16h32
Découvrez nos comparatifs produits sur l'informatique et les technologies.