Page 1 sur 1

Mise à jour objet image dans mySQL

Posté : 15 nov. 2007, 12:57
par vincilian
Bonjour, j'ai récupéré un script qui permet de télécharger un fichier sur le PC et de le mettre en base SQL en fait un truc style mettre à jour un avatar dans un forum.
Je dois vraiment être une brel car j'arrrive pas à le faire marcher...

Fichier "profil"
<form method="post" action="inserer_image.php" enctype="multipart/form-data">
Nom du fichier:&nbsp;
<input type="file" name="image" size="40">
<br>
<input type="submit" name="ok" value="Télécharger">
</form>

<img src="afficher_image.php">
Fichier "inserer_image.php"
require 'config.php';
$link = mysql_connect($host, $user, $password);
mysql_select_db('my_DBD', $link) or die(mysql_error());

$donnees = addslashes(fread(fopen($image, "r"), filesize($image)));
$result=mysql_query('INSERT INTO complement_profil
(ref_membre,donnees_binaire,nom_fichier,taille_fichier,type_fichier)
VALUES ("'.$ref_member.'","'.$donnees.'","'.$_FILES['image']['name'].'","'.$_FILES['image']['size'].'","'.$_FILES['image']['type'].'")');
$id= mysql_insert_id();
print "<br>Indentifiant du fichier dans la base: $id<br>";
mysql_close();
??????????

Posté : 15 nov. 2007, 13:03
par Gargan21
Bonjour,

Visiblement ton $image, ne correspond à rien.

[Question HS]
Stocker ton image dans la bdd est-il vraiment le meilleur choix ? ne vaut-il pas mieux stocker les images dans un dossier et l'url dans la bdd ?
[/Question HS]

Posté : 15 nov. 2007, 13:15
par vincilian
le $image c'est le name de mon input file.
Alors que faut-il mettre dans la fonction fopen et filesize ?
Sinon pour répondre à ta question : t'as raison si les images sont grosses...
On fait comment ?

Posté : 15 nov. 2007, 15:05
par vincilian
J'ai trouvé :
Faut prendre : $_FILES['image']['tmp_name'] pour $image.
$donnees = addslashes(fread(fopen($_FILES['image']['tmp_name'] , "r"), filesize($_FILES['image']['tmp_name'] )));
merci

Posté : 15 nov. 2007, 16:40
par iclo
l
Sinon pour répondre à ta question : t'as raison si les images sont grosses...
On fait comment ?
Il vaut mieux stocker les images dans un répertoire et ne stocker que le nom des fichiers dans la base de donnée.

Posté : 15 nov. 2007, 16:41
par Gargan21
Il vaut mieux stocker les images dans un répertoire et ne stocker que le nom des fichiers dans la base de donnée.
C'est bien ce qu'il me semblait
merci :)

Posté : 15 nov. 2007, 16:48
par vincilian
Gargan21 Merci, je vais suivre vos dire et J'ai trouvé un tuto pour faire ça : Je m'y met donc
merci!
http://www.ybet.be/internet14/php-18.php

Posté : 15 nov. 2007, 17:34
par Gargan21
J'ai trouvé un tuto pour faire ça http://www.ybet.be/internet14/php-18.php
Il a l'air bien en effet

Bon courage :)

PS : truc bête qui peut bloquer quand on a pas l'habitude, il faut bien évidemment avoir les droits d'écriture dans le dossier qui va recevoir les images, dans un environnement de dév sous windows, tu n'auras normalement pas de problème, mais sous un linux ou mac, ou sur un serveur de prod, il faut bien penser à mettre les bons droits sur le dossier ;)