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

PHP & Base de données Discussion :

Récupération d'une image dans une BDD mySQL


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Par défaut Récupération d'une image dans une BDD mySQL
    Hey tout le monde, encore moi

    Une enième question me retourne le cerveau.

    On essaye de récupérer une image uploadée via un formulaire et de l'insérer dans une BDD MySQL pour pouvoir ensuite l'afficher sur une page web.

    On a d'abord tout essayé en méthode GET et là on arrivait à récupérer le nom de l'image dans la BDD mais pas l'URL complète, donc elle ne s'affichait pas derrière.

    On a vu par ci par là que c'était possible seulement avec la méthode POST, donc on a tout passé de GET en POST et là le nom de l'image ne remonte même pas dans notre BDD.

    Comment vous y prenez vous pour recupérer une image via un formulaire, la mettre dans une BDD mySQL et la ressortir derrière ?

    Merci d'avance pour vos réponses

  2. #2
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Salut,


    pour ton form il faut qu'il soit absolument de la forme multipart/form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <FORM enctype="multipart/form-data" action="#" method="post">
    <input type="hidden" name="MAX_FILE_SIZE" value="50000000" />
    <input type="file" name="kiki" size=50 />
    puis tu récupères tes variables et upload comme ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $tmp_name = $_FILES['kiki']['tmp_name'];
    $name = $_FILES['kiki']['name'];
     
    $pathImg = $pathImg."/$name";
    move_uploaded_file($tmp_name, $pathImg);

    Guigo

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Par défaut
    Merci pour ta réponse guigo.

    On s'était pas loupé sur le coup du multipart/form-data.

    Par contre on était repassé en GET parce qu'en remplaçant les GET par des POST, nos champs de formulaires se remplissent en NULL dans la BDD on comprend vraiment pas pourquoi.

    et comme je disais plus haut, en GET tout marche parfaitement sauf qu'on arrive pas à indiquer le chemin complet de l'image uploadée dans la BDD, on voit seulement nomdelimage.jpg.

    Impossible de la récupérer à partir de ça ?

    As-tu une idée de pourquoi tous nos champs ne s'ajoutent plus dans la BDD une fois en POST ?

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Expliquer son problème avec des phrases c'est bien, mais bien souvent ça ne suffit pas.
    A un moment il faut mettre du code, car il s'agit avant tout de code, et il est bien souvent plus simple et plus rapide de détecter une erreur dans un code que dans une phrase.

    Le minimum serait de mettre le formulaire, on constatera la méthode utilisée.
    Et aussi le code qui permet de récupérer les données envoyées par le formulaire.

    Mise à part ça, l'erreur vient peut être d'un mélange entre les méthodes.
    La règle est que si défini dans le formulaire la méthode GET, c'est $_GET qu'il faudra utiliser pour les récupérer.
    Si c'est POST, alors c'est $_POST.
    Il y a une exception ici du faite qu'il s'agit d'un upload de fichier, c'est $_FILES qu'il faut utiliser en ce qui concerne le fichier uploadé.


    Faire aussi du débug en faisant des print_r($_GET) ou print_r($_POST) selon la méthode et print_r($_FILES) (ceci à faire en 1er ligne pour éviter les pièges), c'est fort utile, ça permet de visualiser les données qui transitent.
    Des echo aussi sur certaine variables qui nous paraissent douteuses.
    Astuces à retenir car quasi indispensables.


    et comme je disais plus haut, en GET tout marche parfaitement sauf qu'on arrive pas à indiquer le chemin complet de l'image uploadée dans la BDD, on voit seulement nomdelimage.jpg.
    De quel chemin complet parle tu ?
    Donne un exemple du chemin que tu compte mettre dans la Bdd.

    S'il s'agit du chemin où l'image se trouve coté client, là tu ne l'obtiendra pas, c'est une question de sécurité, puis de toute manière ce n'est pas utile.

    Faut savoir que c'est à soit même de définir où on basculera/déposera l'image placée dans un répertoire temporaire vers un autre répertoire qu'on aura créé au préalable (c'est ce que fait le move_upload_file), et théoriquement c'est dans son espace d'hébergement, dans le www généralement (genre www/images/image.jpg).
    Ce chemin est donc connu.

  5. #5
    Invité de passage
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1
    Par défaut
    Bonjour,
    Je pense avoir compris le probleme de jojojo84, puisque c'est le même que moi ^^.
    En gros, si je ne me trompe pas, tu a un formulaire pour uploader le fichier (moi c'est une image), une page qui fait les vérifs' (poid, taille, type, ...), le fichier s'upload bien là ou tu veux (exemple : images/uploads/Le fichier uploader par l'utilisateur)
    Mais le problème survient apres : comment faire pour afficher l'image sur son site web via une base de donné ?
    Moi par exemple j'ai mon site, l'utilisateur peut poster sa liste de morceaux de musique qu'il possède, avec : Nom du groupe, année, nationalité du groupe, [...], et la jackette de l'album.
    Avez vous une idée sur la marche a suivre afin d'y arriver?
    Si besoi, je posterais mon script.

    Merci de votre aide.
    Linck123

Discussions similaires

  1. [Débutant] Manipulation d'images : intégrer une image dans une image
    Par noscollections dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/10/2014, 11h51
  2. Une image dans une image (image map?)
    Par oklama dans le forum Langage
    Réponses: 3
    Dernier message: 24/01/2007, 14h13
  3. Mettre une Image dans une Image
    Par shadowhocine dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 19/12/2006, 18h40
  4. Réponses: 3
    Dernier message: 30/10/2006, 11h21
  5. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 29/04/2006, 14h19

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