Stocker image BDD

Résolu
TRUNCKS Messages postés 1066 Statut Membre -  
Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à vous,

Je viens de finir un script pour uploader une image avec redimensionnement.

J'aimerai savoir comment coupler cela avec une base de données.

Il faut stocker le lien à l'upload mais je ne vois pas vraiment comment faire.
Pouvez vous m'aider ?

Merci à vous.

8 réponses

  1. Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   13
     
    Tu as déjà une BDD ? Il suffit de faire un INSERT de ton lien ...
    Qu'est-ce qui te bloque ?
    0
  2. TRUNCKS Messages postés 1066 Statut Membre 8
     
    Merci pour la réponse,

    Ben en fait je ne sais pas comment présenter le insert avec le lien, en fonction du dossier image tout ça.

    Si je dois stocker le chemin de base dans une variable et ajouter le nom de l'image etc... :(
    0
  3. Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   13
     
    Ben ce serait peut-être bien de montrer un peu ton code alors...
    0
  4. TRUNCKS Messages postés 1066 Statut Membre 8
     
    J'ai trois champs de formulaire, un pour le titre, un pour une texte et un pour l'upload d'image.

    Je récupère tout avec un post et je fais insert dans la bdd:

    $sq="insert into images values('',\"$nom_image\",\"$texte_image\")";
    $quer=mysql_query($sq ) or die('erreur sq: '.mysql_error());

    Mais c'est là que ça bloque, je ne sais pas trop comment le formuler au niveau de l'image pour entrer l'url.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   13
     
    Ok mais quand tu gères ton file_upload tu enregistres bien ton image quelque part non ? $nom_image c'est juste le nom de l'image ou son chemin ?
    Ce serait vraiment mieux avec tout ton code.
    0
  7. TRUNCKS Messages postés 1066 Statut Membre 8
     
    Le nom image c'est en fait le titre, ce n'est pas le titre de l'image.

    Voilà ce que j'utilise pour l'upload:

    
    if( !empty($_FILES['fichier']['name']) ) 
    {
    // Recuperation de l'extension du fichier 
    $extension = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION); 
    // On verifie l'extension du fichier 
    if(in_array(strtolower($extension),$tabExt)) 
    { 
    // On recupere les dimensions du fichier 
    $infosImg = getimagesize($_FILES['fichier']['tmp_name']); 
    // On verifie le type de l'image 
    if($infosImg[2] >= 1 && $infosImg[2] <= 14) 
    { 
    
    
    // On verifie les dimensions et taille de l'image 
    if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['fichier']['tmp_name']) <= MAX_SIZE)) 
    
    //on redimentionne limage
    $x = 75; 
    
    $y = 75; # Taille en pixel de l'image redimensionnée 
    
    if ($infosImg)
    
    echo 'Image redimensionnée ... 
    '; 
    
    if ($infosImg['mime']=='image/jpeg' ) { 
    $img_big = imagecreatefromjpeg($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine 
    $img_new = imagecreate($x, $y); 
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or $img_mini = imagecreate($x, $y); 
    
    // copie de l'image, avec le redimensionnement. 
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); 
    
    imagejpeg($img_mini,$_FILES['fichier']['tmp_name'] ); 
    }
    elseif ($infosImg['mime']=='image/png' ) { 
    $img_big = imagecreatefrompng($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine 
    $img_new = imagecreate($x, $y); 
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or $img_mini = imagecreate($x, $y); 
    
    // copie de l'image, avec le redimensionnement. 
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); 
    
    imagepng($img_mini,$_FILES['fichier']['tmp_name'] ); 
    }
    elseif ($infosImg['mime']=='image/gif' ) { 
    $img_big = imagecreatefromgif($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine
    $img_new = imagecreate($x, $y); 
    # création de la miniature 
    $img_mini = imagecreatetruecolor($x, $y) 
    or $img_mini = imagecreate($x, $y); 
    
    // copie de l'image, avec le redimensionnement. 
    imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); 
    
    imagegif($img_mini,$_FILES['fichier']['tmp_name'] ); 
    }
    { 
    // Parcours du tableau d'erreurs 
    if(isset($_FILES['fichier']['error']) 
    && UPLOAD_ERR_OK === $_FILES['fichier']['error']) 
    { 
    // On renomme le fichier 
    $nomImage = md5(uniqid()) .'.'. $extension; 
    // Si c'est OK, on teste l'upload 
    if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage)) 
    { 
    $message = 'Upload réussi !'; 
    
    
    0
  8. Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   13
     
    Ok, la ligne qui m'intéressait c'était
    if(move_uploaded_file($_FILES['fichier']['tmp_name'], TARGET.$nomImage))

    Sauf que je suis pas une pro de pro et je comprend pas d'où sort TARGET. Mais bref, ça devrait ressembler à ça (si ya 4 colonnes dans la table mettons). Après ne sachant pas ce que contient TARGET ni la structure exacte de ton site je fais au pif, adaptes :

    $chemin_image = "http://www.monsite/".TARGET.$nomImage; 
    $quer = "INSERT INTO images VALUE('','$chemin_image','$nom_image','$texte_image')"; 
    mysql_query($quer) or die('Erreur SQL : '.$quer.'<br>'.mysql_error());


    Est-ce que ça te répond ? Par contre je vois qu'initialement tu avais mis ton mysql_query($sq) dans une variable mais vu que c'est un insert je ne vois pas tellement l'intérêt. En quoi ça va te resservir après ?
    Merci Ubuntu
    0
    1. Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   13
       
      Oops, j'avais oublié le .com t'auras remarqué ;)

      $chemin_image = "http://www.monsite.com/".TARGET.$nomImage; 
      0
  9. TRUNCKS Messages postés 1066 Statut Membre 8
     
    Nickel, merci encore :)
    0