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 :

Stocker les images dans une bdd


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut Stocker les images dans une bdd
    Bonjour,

    Je voudrais avoir votre avis.
    J'ai une table dans laquelle j'enregistre le détail des films (titre, année de sortie, durée, synopsis...)
    Dans dossier images je stocke la miniature de chaque film.

    Me conseillez-vous de créer une table images qui contiendrait :
    - id_image
    - id_film
    - image_nom
    - image_taille
    - image_type
    - image_blob

    ou de mettre les images directement dans la table films ?

    Quels seraient les avantages et inconvénients de ces 2 possibilités?

    Merci d'avance

  2. #2
    Membre averti Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Points : 368
    Points
    368
    Par défaut
    Pour éviter tout problème, je te conseille de ne pas mettre d'image dans la base de données, ça l'alourdit et c'est incompréhensible. Je te conseille de mettre le lien vers le dossier image (colonne 'Lien_Image') et le nom de l'image (une colonne 'Nom_Image')

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Merci.
    Donc je vais juste ajouter un champ à ma table films.

    Sans indiquer le chemin complet de l'images comment je peux récupérer uniquement le fichier "mon_fichier.ext" à partir de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="file" name="fic" size=50>
    ex: quand je clique sur parcourir et que je valide une image, je récupère :
    c:\mes documents\mes_sites\site1\images\toto.jpg

    je voudrais pouvoir enregistrer uniquement dans ma table "toto.jpg"

    Merci

  4. #4
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 898
    Points : 442
    Points
    442
    Par défaut
    Bon ben je reviens avec plus de détails

    J'ai incrémenté une table images pour faire un test
    les champs :
    - id_image type INT (11) NotNull Auto_increment
    - image type varchar(50) NotNull

    le code de ma page:
    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
    <?php
    if (isset($_FILES['fic'])){
    	$image_nom = $_FILES['fic']['name'];
    	$image_type =$_FILES['fic']['type'];
    	$image = file_get_contents($_FILES['fic']['tmp_name']);	
     
    	$sql = "INSERT INTO images(id_image, image)
    		VALUES('','$image')";
    	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    }
    ?>
    <form method="POST" action="index.php?page=test">
    	<input type="file" name="fic" size="30">
    	<input type="submit" name="upload" value="envoyer">	
    </form>
    Quand je teste je n'ai rien dans ma table

    Je veux juste récupérer le nom et l'extension

    Merci de m'aider

  5. #5
    Membre averti Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Points : 368
    Points
    368
    Par défaut
    As-tu essayé de voir si c'était ta requête qui ne marchait pas ou si tes variables ne contenaient rien ?

    Je pense que cela vient de ta requête, car la syntaxe pour récupérer une image est la bonne (du moins il me semble, je n'ai pas de serveur apache sous la main, donc je ne peux pas tester...)

    Essaye ça et dit moi ce que tu as ...

    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
     
     
    <?php
    if (isset($_FILES['fic'])){
    	$image_nom = $_FILES['fic']['name'];
    	$image_type =$_FILES['fic']['type'];
    	$image = file_get_contents($_FILES['fic']['tmp_name']);	
     
    	$sql = "INSERT INTO images(id_image, image)
    		VALUES('','$image')";
    	mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
     
    	if(isset($_GET['id']) && $_GET['id']==1)
    	{
      	  echo "image_nom : ".$image_nom;
      	  echo "<br />image_type : ".$image_type;
      	  echo "<br />image : ";
       	  print_r(file_get_contents($_FILES['fic']['tmp_name']));
    	}
    }
     
    ?>
    <form method="POST" action="index.php?page=test&id=1">
    	<input type="file" name="fic" size="30">
    	<input type="submit" name="upload" value="envoyer">	
    </form>

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    495
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 495
    Points : 396
    Points
    396
    Par défaut
    dans le formulaire, il faut rajouter ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    enctype="multipart/form-data"
     
    <form method="post" action="..." enctype="multipart/form-data">
    sinon, le code php lui meme a l'air ok, a premiere vue !

Discussions similaires

  1. Stocker et récupérer des images dans une BDD externe
    Par bigwade dans le forum Android
    Réponses: 10
    Dernier message: 12/02/2013, 16h20
  2. Ou son stocker les images d une bibliotheque dans WSS
    Par neuneu1 dans le forum SharePoint
    Réponses: 6
    Dernier message: 19/11/2008, 08h21
  3. [MySQL] comment stocker puis recuper les images dans une base de donnée
    Par essono dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2006, 23h07
  4. Réponses: 1
    Dernier message: 22/11/2006, 22h49
  5. les images dans une base de données
    Par houhou dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/06/2004, 14h27

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