telecharger un fichier texte se trouvant sur un bdd

Eléphant du PHP | 120 Messages

12 mai 2006, 12:31

bonjour a tous,
je souhaiterai telecharger un fichier texte qui se trouve deja dans la table d'une base de données. j'ai récupéré un script qui me permet d'enregistrer le fichier dans la bas, mais je sais pas comment on fait pour récuperer celui ci.
c'est très important, merci de bien vouloir m'aider.

Eléphanteau du PHP | 28 Messages

12 mai 2006, 13:13

Bon si je comprend bien tu as mis le contenu d'un fichier texte dans un champ de base de donnée ?

Eléphant du PHP | 120 Messages

12 mai 2006, 14:11

bein... je sais pas si c'est réellement le contenu ou le fichier en lui meme. je ne croi pas que ca soit le contenu du fait qu'il soit sauvegardé dans le type BLOB. voici le script qui permet de stocker le fichier :
		$img_taille = $_FILES['fic']['size'];
		if ( $img_taille > $taille_max )
		{
			echo "Trop gros !";
			return false;
		}
		$img_type = $_FILES['fic']['type'];
		$img_nom = $_FILES['fic']['name'];
		$hote = 'localhost';
		$base = 'test';
		$user = 'root';
		$pass = '';
		$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
		$ret = mysql_select_db ($base) or die (mysql_error ());
		$img_blob = file_get_contents ($_FILES['fic']['tmp_name']);
		$req = "INSERT INTO images (img_nom, img_taille, img_type, img_blob ) VALUES ('".$img_nom."','".$img_taille;
		$req.="','".$img_type."','".addslashes($img_blob)."') ";
		$ret = mysql_query ($req) or die (mysql_error ());
merci de ton aide

Eléphanteau du PHP | 28 Messages

12 mai 2006, 17:05

Bon si j'ai bien compris il faut que tu fasse une simple requete sur ta table

Dans le genre :
SELECT * FROM images WHERE img_nom='$var'

$var est le nom du fichier que tu veux

Tu peux simplifier ta base de donnée et ton code si tu veux seulement mettre des fichiers .txt

Eléphant du PHP | 120 Messages

13 mai 2006, 08:48

oui c vrai que la base peut etre simplifiée du fait que le plus important c le fichier seulement. tout le reste je m'en sert pas trop a part le nom et le type. en revanche ya une évolution mais comme tout évolution un nouveau pb vient avec : j'arrive a télécharger le fichier lui meme avecle script suivant :
$hote = 'localhost';
$base = 'test';
$user = 'root';
$pass = '';
$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
$ret = mysql_select_db ($base) or die (mysql_error ());
$req = "SELECT img_id, img_type,img_blob,img_nom FROM images WHERE img_id = ".$id;
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
header ("Content-type: ".$col[1]);
header("content-Disposition: attachment; filename=".$col[3]);
echo $col[2];
le pb c que certains fichiers qui sont récupérés sont justement mal récupérés. je pense en particulier a des fichiers xls. c en réalité ce type de fichier que je dois stocker dans la base, chose que apparemment marche bien, mais a la récup. ca fou la merde. on peut pas en dire de meme pour des fichier .doc, qui eux sont bien récupérés.
tu me serai d'une grande aide si tu pouvai m'indiquer les erreurs ou solutions. merci encore.