Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/11/2007, 10h47   #1
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Par défaut [SQL] Récupérer un BLOB avec php

Bonjour,

Je dispose d'un fichier pdf que je mets dans ma base sous forme de BLOB. La méthode employée est expliquée ici : http://helyos.developpez.com/lob/

Maintenant, je voudrais récupérer mon BLOB sur mon site web afin de pouvoir l'afficher avec acrobat sur clic sur un lien mais je ne vois pas comment faire ....

Merci
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 11h19   #2
Membre éclairé
 
Inscription : septembre 2006
Messages : 459
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2006
Messages : 459
Points : 375
Points : 375
Envoyer un message via MSN à fucce
salut,
moi j'ai crée un fichier affiche_fichier.php ou je renseigne l'header (pour toi un type PHP) et je fais un echo du contenu de mon BLOB! Tout simplement!
fucce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 11h27   #3
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
C'est ce que j'ai fait mais il ne m'affiche rien. Il faut dire que je passe par un web service. Enfin toujours est-il que je n'ai rien a l'affichage. Si tu as ton code sous la main, je suis bien preneur. Merci

Autrement j'ai trouvé ceci que je vais fouiller :

Code :
1
2
3
4
5
6
7
 $connection = OCILogon ("login","password");
 $requete = "select img from image where cle=$num";
 $moncursor = OCIParse ($connection, $requete);
 $result=OCIExecute($moncursor);
 $result=OCIFetchinto($moncursor,$enreg);
 //header("Content-type: image/jpeg");
 print "$enreg[0]->load()";
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 11h32   #4
Membre éclairé
 
Inscription : septembre 2006
Messages : 459
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2006
Messages : 459
Points : 375
Points : 375
Envoyer un message via MSN à fucce
Oui, pour moi, ce que tu as trouvé est satisfaisant! Moi, ça fait ça :
Code :
1
2
3
4
 
header("Content-Disposition:inline filename=".$nomfic."\n");
header("content-type: application/pdf");
echo $reponse[0]['REPONSCOU_0']; //ceci est le contenu BLOB de mon pdf
Voilà!
fucce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 11h39   #5
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Ok merci fucce, j'apprecie beaucoup ton aide. D'autant qu'apparemment tu as fait exactement ce que je suis en train de faire

Juste une petite question, dans ton header, c'est quoi $nomfic ? C'est un nom que tu donnes pour ton pdf ?

Edit : je viens de vérifier, je n'ai vraiment rien a l'affichage alors que j'ai (BLOB) en base
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 11h40   #6
Membre éclairé
 
Inscription : septembre 2006
Messages : 459
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2006
Messages : 459
Points : 375
Points : 375
Envoyer un message via MSN à fucce
oui, en effet, $nomfic est le nom que je donne au fichier ouvert.
fucce est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 11h44   #7
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Je n'ai toujours rien a l'affichage. Je vais regarder si au niveau de l'appel a ma webmethod je récupère bien qq chose
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 11h51   #8
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Bon j'ai trouvé ce qui cloche, ma requete a un group by et un order by. Il parait que les données de type BLOB n'apprécient pas trop. Je résoud ce problème et j'essaie ta méthode fucce.

Merci

Edit : Bon le problème n'est toujours pas ça. Avec une requete bateau, ma webmethod n'affiche toujours rien dans le flux xml qui est renvoyé alors que le requêteur sql developper affiche (BLOB) dans la colonne correspondante.Du coup, je me demande si j'ai bien inséré mon pdf-BLOB
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2007, 12h24   #9
Membre éclairé
 
Inscription : septembre 2006
Messages : 459
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2006
Messages : 459
Points : 375
Points : 375
Envoyer un message via MSN à fucce
Si ça peut t'aider, je te donne l'enregistrement d'un BLOB dans une base MySQL :
Code :
1
2
3
4
5
6
7
8
 
	$image = file_get_contents('reponse.pdf'); //nom du fichier à enregistrer
//on les passe en binaire
	$data = unpack("H*hex",$image);
	$query = 'DECLARE @ptr VARBINARY(16)
	SELECT @ptr=TEXTPTR(REPONSCOU_0) FROM XCOURRIERE WHERE COUNUM_0=\''.$_POST['counum'].'\'
	WRITETEXT XCOURRIERE.REPONSCOU_0 @ptr 0x'.$data['hex']; // XCOURRIERE nom de la table; COUNUM clé de la table
	$test = $base->ExecuterRequete($query, $r);
Bon courage!
fucce est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h05.


 
 
 
 
Partenaires

Hébergement Web