Enregistrer un binaire dans une base de données

cs_astien Messages postés 9 Date d'inscription mercredi 16 janvier 2002 Statut Membre Dernière intervention 23 janvier 2003 - 20 janv. 2003 à 23:27
amonra_allan Messages postés 2 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 janvier 2005 - 20 janv. 2005 à 16:32
astien

Comment fais-ton en php pour inserer un resgistre avec un objet binaire ?

Quelqu'un peut m'aider ?

11 réponses

revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
22 janv. 2003 à 12:47
qu'est-ce que tu entends par 'insérer un registre' ???
0
cs_astien Messages postés 9 Date d'inscription mercredi 16 janvier 2002 Statut Membre Dernière intervention 23 janvier 2003
22 janv. 2003 à 12:58
astien

g une table image avec un champs binaire et un champs id
je veux creer une page php qui me permet d'ajouter une image dans ma base de donnée. je fait l'upload de l'image sur le serveur a partir de la page d'ajout d'image. je traite l'image et je l'insere dans la base de donnée. le probleme c inserer l'image en binaire. comment je fais ? peut-être que je devrais m'y prendre d0une tout autre façon et peut-être aussi que je devrais utiliser un autre type de champs pour stocker l'image.
0
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
22 janv. 2003 à 13:18
normalement avec un champ MEDIUMBLOB ça devrait marcher (ça marche chez moi).
si ça marche pas vérifie que la variable qui contient l'image contient BIEN l'image.
sinon tu peux toujours enregsitrer l'image dans un répertoire sans passer par une base mysql
0
cs_astien Messages postés 9 Date d'inscription mercredi 16 janvier 2002 Statut Membre Dernière intervention 23 janvier 2003
22 janv. 2003 à 13:28
astien

Ok pour le champs je comprends, mais sur la page php,
comment dois-je faire pour traduire l'image au format MEDIUMBLOB et comment je fais pour traduire un MEDIUMBLOB au format image :P
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
22 janv. 2003 à 13:37
$image = "CONTENU DE L'IMAGE";

mysql_query("INSERT_INTO nom_table(image) VALUES($image)");

ben c pas plus dur que ça. y'a pas à traduire l'image au format mediumblob.

une question, comment tu récupère le contenu de l'image, g des doutes là...

essaye d'enregistrer ta variable qui contient l'image dans un fichier :

$fp = fopen("image.jpg","w+");
fputs($fp,$image);
fclose($fp);

et ouvre ce fichier avec un éditeur normal d'image et regarde si tu vois bien ton image.
0
cs_astien Messages postés 9 Date d'inscription mercredi 16 janvier 2002 Statut Membre Dernière intervention 23 janvier 2003
22 janv. 2003 à 15:51
astien

un champs MEDIUMBLOB est un champs qui contient des caracteres ... c bien ca ?

comment je fais pour recuper le code de l'image pour l'inserer dans la bd,

par exemple $le_fichier_str = la_fonction($le_fichier) -> retourne chaine de caractere qui correspond a l'image

je v inserer $le_fichier_str dans la bd ...

tu me comprends ? :P

qu'utilises-tu ?

bonne journée
0
cs_astien Messages postés 9 Date d'inscription mercredi 16 janvier 2002 Statut Membre Dernière intervention 23 janvier 2003
22 janv. 2003 à 15:52
astien

un champs MEDIUMBLOB est un champs qui contient des caracteres ... c bien ca ?

comment je fais pour recuper le code de l'image pour l'inserer dans la bd,

par exemple $le_fichier_str = la_fonction($le_fichier) -> retourne chaine de caractere qui correspond a l'image

je v inserer $le_fichier_str dans la bd ...

tu me comprends ? :P

qu'utilises-tu ?

bonne journée
0
revinc Messages postés 385 Date d'inscription mardi 15 octobre 2002 Statut Membre Dernière intervention 19 décembre 2017
23 janv. 2003 à 13:19
un médium blob contient jusqu'à 16777215 caractères binaire (je crois)

bon un type t'envoie une image par un formulaire :

sur la page de validation tu fais

//
copy($img,$img);
$fp = fopen($img,"rb");
$contenu = fread($fp,filesize($img));
fclose($fp);
unlink($img);

mysql_query("INSERT INTO table(image) VALUES($contenu)");

OU (mais chuis po sur que ca marche)

//
mysql_query("INSERT INTO table(image) VALUES($img)");

// OU si t'as déjà ta fonction et si t'es sur ke $le_fichier_str contient bien ton image

mysql_query("INSERT INTO table(image) VALUES($le_fichier_str )");

normalement, y'a pas de raisons pour que ca marche po.....

mais si ca foire encore, utilise plus les bdd pour stocker tes images mais plutôt des fichiers bien réels. en plus c plus pratique.
0
cs_astien Messages postés 9 Date d'inscription mercredi 16 janvier 2002 Statut Membre Dernière intervention 23 janvier 2003
23 janv. 2003 à 13:35
astien
oki

Merci Beaucoup pour ton aide !!!
0
michel_roger Messages postés 60 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 18 août 2006
30 juin 2004 à 15:42
Salut g moi aussi galéré aujourd'hui et je pense avoir un truc qui marche (mais pas super cela dit). Je sais pas comment faire pour supprimer ce fichier. Si je le fais à la fin du script, la page n'affiche plus l'image.

Pour inserer :
$filename = "path/vers/le/fichier";
$handle = fopen ($filename, "rb");
$contents = fread ($handle, filesize($filename));

// C $content qu'on va insérer dans le champs mediumblob
$contents = addslashes($contents);
unlink($filename);
fclose ($handle);

$query = "INSERT INTO nom_table (image_id, post_image) VALUES (1,1,'$contents')";
if (!query($query,$forum))
echo mysql_error(). "
";
else
echo "Enregistré.";

Pour afficher l'image :
// Création d'un fichier binaire (sur serveur windows)
$filename = "path/vers/le/fichier";
if (!$handle = fopen("$filename", "wb")) {
print "Impossible d'ouvrir le fichier ($filename)";
exit;
}
// On écrit le contenu binaire du champs récupéré dans $record
if(!fwrite($handle, $record["post_image"])) {
print "Impossible d'écrire dans le fichier ($filename)";
exit;
}
fclose($handle);

// Balise IMG pour affichage
echo "\n";
0
amonra_allan Messages postés 2 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 20 janvier 2005
20 janv. 2005 à 16:32
bonjours a vous, moi aussi jai un problemme pour récuperer les images dans la base de donné. lorsque je veux récupérer une image, jobtien ceci:

ÿØÿáŠ6Exif\0\0MM\0*\0\0\0\0 \0\0\0\0\0\0\0ˆ\0\0\0\0 \0\0\0œ\0\0\0\0\0\0\0

je ne sais pas commaqn reconvertir ça en image
merci a lavance
0
Rejoignez-nous