Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL Webou Webou Pro
Recherche avancée  
*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
24 Novembre 2017, 21:25:58


Connexion avec identifiant, mot de passe et durée de la session


Pages: [1] 2   Bas de page
  Imprimer  
Auteur Fil de discussion: inserer une image dans la bdd  (Lu 10224 fois)
0 Membres et 1 Invité sur ce fil de discussion.
asgpv-18
Habitué
**
Hors ligne Hors ligne

Messages: 52



Voir le profil WWW
« le: 19 Juin 2009, 18:19:17 »

Bon en ce moment c'est la grande rénovation dans mon site,
donc j'aimerai, dans l'espace membre que j'ai créé, donner la possibilité à chaque membre de se créer un avatar.

Pour se faire je pense que le plus judicieux serait de mettre dans le formulaire d'inscription un champ upload qui envoie directement la photo dans la base de donnée.

Je voudrais savoir d'abord s'il est possible de stocker des images dans la bdd directement, si oui j'ai essayé en créant dans ma table "membre2" un champ "avatar" (longblob) mais je n'arrive pas à récuperer l'image sur ma page.

voici le code de la page:
Code:
<?php
mysql_connect
("localhost""...""mdp");
mysql_select_db("...");
 
$reponse mysql_query("SELECT * FROM membre2"); // Requête SQL
 
 
// On fait une boucle pour lister tout ce que contient la table :
 
while ($donnees mysql_fetch_array($reponse) )
{
?>

    <p>
    <strong>Avatar</strong> : <?php echo $donnees['avatar']; ?><br />

   </p>
<?php
}
 
mysql_close(); // Déconnexion de MySQL
?>


(Le code est simplifié au maximum)
Pouvez vous me dire si le probleme vient de la base de donnée ou du code? Sourire
Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« le: 19 Juin 2009, 18:19:17 »

 Journalisée
Ninety
Bavard
***
Hors ligne Hors ligne

Messages: 122


Voir le profil
« Répondre #1 le: 19 Juin 2009, 20:21:35 »

Tu peux faire un script qui sauvegarde ton image dans un dossier sur ton serveur et un autre script qui met le lien de cette image dans la BDD Clin d'oeil.
Journalisée
MIkE
Big boss
*****
Hors ligne Hors ligne

Messages: 6 150



Voir le profil WWW
« Répondre #2 le: 19 Juin 2009, 20:46:22 »

Bonjour,

Il est déconseillé de stocker des images dans la BDD. C'est très inefficace au niveau ressources, et ça fait exploser la taille de la BDD qui n'est pas faite pour ça.
Journalisée

Le support et les demandes se font sur le forum. Aucune réponse n'est apportée aux demandes par message privé.
Soutenez Webou en souscrivant à une offre
asgpv-18
Habitué
**
Hors ligne Hors ligne

Messages: 52



Voir le profil WWW
« Répondre #3 le: 20 Juin 2009, 11:30:54 »

ok donc il faut mieux passer par un lien, mais y a t-il un moyen que lorsque le visiteur upload le fichier sur le serveur qu'un lien se créé automatiquement (sans que le visiteur ait besoin de le taper..).
En gros j'aimerai savoir comment font les blogs pour faire des articles avec images.
Journalisée
Neiflheim
Webmaster / Ingénieur Environnement
Bavard
***
Hors ligne Hors ligne

Messages: 109



Voir le profil WWW
« Répondre #4 le: 20 Juin 2009, 14:12:25 »

oui tu renomme le fichier de destination, en mettant par exemple le pseudo du membre >> $name= 'images/avatar'.$_SESSION['login'].'.jpg'; enfin après tout dépend ton code, comme ça tu es sur que personne ne pourra faire un doublon d'image dans ton dossier avatar  Clin d'oeil
Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« Répondre #4 le: 20 Juin 2009, 14:12:25 »

 Journalisée
asgpv-18
Habitué
**
Hors ligne Hors ligne

Messages: 52



Voir le profil WWW
« Répondre #5 le: 20 Juin 2009, 14:39:58 »

ok je vais essayer de faire ca merci  Sourire
Journalisée
asgpv-18
Habitué
**
Hors ligne Hors ligne

Messages: 52



Voir le profil WWW
« Répondre #6 le: 20 Juin 2009, 16:00:50 »

oui tu renomme le fichier de destination, en mettant par exemple le pseudo du membre >> $name= 'images/avatar'.$_SESSION['login'].'.jpg'; enfin après tout dépend ton code, comme ça tu es sur que personne ne pourra faire un doublon d'image dans ton dossier avatar  Clin d'oeil

J'ai un peu du mal a integrer ton code Neiflheim dans le mien...
Mon code est le suivant:
[Fichier: upload.php]
Code:
<?php include("../fct_membre.php"); ?>
<?php

if( isset($_POST['upload']) ) {  // si formulaire soumis
    
$dossier 'images/avatar/'// nom du dossier ou vont &#38;#234;tre stock&#38;#233; les images
    
$fichier basename($_FILES['fichier']['name']);
    
$taille_maxi 16777216;  // taille maximal du fichier
    
$taille filesize($_FILES['fichier']['tmp_name']);
    
$extensions = array('.png''.gif''.jpg');
    
$extension strrchr($_FILES['fichier']['name'], '.');
    
//D&#38;#233;but des v&#38;#233;rifications de s&#38;#233;curit&#38;#233;...
    
if(!in_array($extension$extensions)) { //Si l'extension n'est pas dans le tableau
         
$erreur 'Vous devez uploader un fichier de type jpg, png ou gif...';
    }
    if(
$taille>$taille_maxi) {
         
$erreur 'Le fichier est trop gros...';
    }
    if(!isset(
$erreur)) { //S'il n'y a pas d'erreur, on upload
         //On formate le nom du fichier
         
$fichier strtr($fichier,
              
'&#38;#192;&#38;#193;&#38;#194;&#38;#195;&#38;#196;&#38;#197;&#38;#199;&#38;#200;&#38;#201;&#38;#202;&#38;#203;&#38;#204;&#38;#205;&#38;#206;&#38;#207;&#38;#210;&#38;#211;&#38;#212;&#38;#213;&#38;#214;&#38;#217;&#38;#218;&#38;#219;&#38;#220;&#38;#221;&#38;#224;&#38;#225;&#38;#226;&#38;#227;&#38;#228;&#38;#229;&#38;#231;&#38;#232;&#38;#233;&#38;#234;&#38;#235;&#38;#236;&#38;#237;&#38;#238;&#38;#239;&#38;#240;&#38;#242;&#38;#243;&#38;#244;&#38;#245;&#38;#246;&#38;#249;&#38;#250;&#38;#251;&#38;#252;&#38;#253;&#38;#255;',
              
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         
$fichier preg_replace('/([^.a-z0-9]+)/i''-'$fichier);
         if(
move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier $fichier)) { //Si l'upload a fonctionn&#38;#233;...
              
echo 'Upload effectu&#38;#233; avec succ&#38;#232;s !';
         }
         else { 
// Sinon
              
echo 'Echec de l\'upload !';
         }
    }
    else {
         echo 
$erreur;
    }
}

?>
Quelqu'un pourrait me le modifier?   Ind&eacute;ci
Journalisée
Ninety
Bavard
***
Hors ligne Hors ligne

Messages: 122


Voir le profil
« Répondre #7 le: 21 Juin 2009, 00:14:49 »

En même temps que tu upload ton fichier et donc que tu le sauvegarde sur le serveur, tu dois insérer son emplacement (INSERT) dans la BDD.
A l'affichage de la page tu va devoir récupérer cet emplacement (SELECT) de la BDD. Ensuite tu va afficher l'image grâce a la balise img (imaginons que le chemin de l'image soit stocker dans $path) :

Code:
<?php
    
echo '<img alt=\'mom_image\' src=\''$path .'\' />';
?>
Journalisée
asgpv-18
Habitué
**
Hors ligne Hors ligne

Messages: 52



Voir le profil WWW
« Répondre #8 le: 21 Juin 2009, 10:48:46 »

Merci mais j'envisage plutot de faire uploader le fichier sur le serveur puis aux endroits où je veux qu'il y ait l'image je met ce code :
Code:
<img src="images/avatar_<?php echo htmlentities(trim($_SESSION['login'])); ?>.jpg">
mais seulement il faudrait d'abord que j'arrive à faire ce que Neiflheim a dit : changer le nom du fichier uploader pour qu'il prenne le nom du membre qui l'envoi.

Exemple: "jean_nemar" upload sa jolie photo perso qui s'appele "bg.jpg" et quand celle-ci est reçue sur le serveur dans le fichier "images" elle porte le nom de "avatar_jean_nemar.jpg" , à chaque fois qu'il uploadera un avatar, l'ancien sera supprimé (vu qu'il porte le même nom). Sourire

C'est très simple à faire , il faut juste que j'arrive à changer le nom du fichier pendant l'upload.
quelqu'un pourrait me modifier mon code afin que ca marche?

Code:
<?php include("../fct_membre.php"); ?>
<?php

if( isset($_POST['upload']) ) {  // si formulaire soumis
    
$dossier 'images/avatar/'// nom du dossier ou vont &#38;#38;#234;tre stock&#38;#38;#233; les images
    
$fichier basename($_FILES['fichier']['name']);
    
$taille_maxi 16777216;  // taille maximal du fichier
    
$taille filesize($_FILES['fichier']['tmp_name']);
    
$extensions = array('.png''.gif''.jpg');
    
$extension strrchr($_FILES['fichier']['name'], '.');
    
//D&#38;#38;#233;but des v&#38;#38;#233;rifications de s&#38;#38;#233;curit&#38;#38;#233;...
    
if(!in_array($extension$extensions)) { //Si l'extension n'est pas dans le tableau
         
$erreur 'Vous devez uploader un fichier de type jpg, png ou gif...';
    }
    if(
$taille>$taille_maxi) {
         
$erreur 'Le fichier est trop gros...';
    }
    if(!isset(
$erreur)) { //S'il n'y a pas d'erreur, on upload
         //On formate le nom du fichier
         
$fichier strtr($fichier,
              
'&#38;#38;#192;&#38;#38;#193;&#38;#38;#194;&#38;#38;#195;&#38;#38;#196;&#38;#38;#197;&#38;#38;#199;&#38;#38;#200;&#38;#38;#201;&#38;#38;#202;&#38;#38;#203;&#38;#38;#204;&#38;#38;#205;&#38;#38;#206;&#38;#38;#207;&#38;#38;#210;&#38;#38;#211;&#38;#38;#212;&#38;#38;#213;&#38;#38;#214;&#38;#38;#217;&#38;#38;#218;&#38;#38;#219;&#38;#38;#220;&#38;#38;#221;&#38;#38;#224;&#38;#38;#225;&#38;#38;#226;&#38;#38;#227;&#38;#38;#228;&#38;#38;#229;&#38;#38;#231;&#38;#38;#232;&#38;#38;#233;&#38;#38;#234;&#38;#38;#235;&#38;#38;#236;&#38;#38;#237;&#38;#38;#238;&#38;#38;#239;&#38;#38;#240;&#38;#38;#242;&#38;#38;#243;&#38;#38;#244;&#38;#38;#245;&#38;#38;#246;&#38;#38;#249;&#38;#38;#250;&#38;#38;#251;&#38;#38;#252;&#38;#38;#253;&#38;#38;#255;',
              
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
         
$fichier preg_replace('/([^.a-z0-9]+)/i''-'$fichier);
         if(
move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier $fichier)) { //Si l'upload a fonctionn&#38;#38;#233;...
              
echo 'Upload effectu&#38;#38;#233; avec succ&#38;#38;#232;s !';
         }
         else { 
// Sinon
              
echo 'Echec de l\'upload !';
         }
    }
    else {
         echo 
$erreur;
    }
}

?>
Journalisée
asgpv-18
Habitué
**
Hors ligne Hors ligne

Messages: 52



Voir le profil WWW
« Répondre #9 le: 22 Juin 2009, 18:25:33 »

personne sais faire Huh
Journalisée
oujanespace
Nouveau
*
Hors ligne Hors ligne

Messages: 2


Voir le profil
« Répondre #10 le: 22 Juin 2009, 19:18:40 »

merci a toi  très claire Clin d'oeil
Journalisée
Neiflheim
Webmaster / Ingénieur Environnement
Bavard
***
Hors ligne Hors ligne

Messages: 109



Voir le profil WWW
« Répondre #11 le: 22 Juin 2009, 20:30:28 »

personne sais faire Huh

Pendant l'upload tu ne peux pas changer le nom, par contre une fois qu'il est dans ton dossier tu peux utiliser la fonction rename.
Pour éviter un doublon lors de l"upload, tu peux lui donner un numéro aléatoire a 40 chiffres Sourire que tu renommes par la suite en ce que tu veux.
(ou tu créé un dossier pour les fichiers temporaires)
Journalisée
asgpv-18
Habitué
**
Hors ligne Hors ligne

Messages: 52



Voir le profil WWW
« Répondre #12 le: 22 Juin 2009, 20:40:27 »

ok merci
Journalisée
fontaineff
Nouveau
*
Hors ligne Hors ligne

Messages: 37


Voir le profil
« Répondre #13 le: 14 Septembre 2010, 00:55:46 »

Bonjour,

Je reprends ce vieux (2009) fil de discussion car l'objet est 100% ce que je recherche, càd, en gros, insérer des images dans une BD pour que ces photos apparaissent le cas écheans dans les pages dynamiques.
Si je refais le topo des messages précédents (car c'est un peu chinois pour le non pro que je suis):
Mike insiste pour que les photos ne soient pas stockées dans la BD elle-même, donc cela induit que je doit créer :
(1a) un formulaire qui doit permettre à un visiteur d'uploader sa photo (le visiteur choisi le chemin et le fichier sur son pc à uploader ) et (1b) un code enregistrera la photo sur le serveur (et pas dans la BD) avec un nom de fichier construit pour éviter les doublons,
(2) (avec MySQL) un champ 'référence photo' dans la BD stockera les noms des fichiers photos sur le serveur en lien avec les sujets auxquelles elles se rapportent;
(3) un code qui, lorsque le sujet de la photo sera visité par un visiteur, lira le nom du fichier dans la DB et extrairera la photo elle-même pour l'insérer dans la page dynamique.

Les messages précédants donnent des pistes pour la tâche (1b) et (3), ce dernier étant particulièrement difficile à comprendre (please mettez un max d'explications dans vos codes Pleurs).

Pour le (2), je suppose que le champ peut être VARCHAR Ind&eacute;ci

Je serais très reconnaissant à tout doué (des codes php), et passiant, s'il voudrait bien copier ici un exemple de code entier  pour (1a) et (3) avec un petit mot d'explication pour un max de lignes. Clin d'oeil

François
Journalisée
MIkE
Big boss
*****
Hors ligne Hors ligne

Messages: 6 150



Voir le profil WWW
« Répondre #14 le: 16 Septembre 2010, 09:25:35 »

Bonjour,

Quelques liens utiles :
http://www.siteduzero.com/tutoriel-3-37674-upload-de-fichiers-par-formulaire.html
http://antoine-herault.developpez.com/tutoriels/php/upload/
Journalisée

Le support et les demandes se font sur le forum. Aucune réponse n'est apportée aux demandes par message privé.
Soutenez Webou en souscrivant à une offre
Pages: [1] 2   Haut de page
  Imprimer  
 
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Dilber MC Theme by HarzeM
Page générée en 0.04 secondes avec 21 requêtes.