Rechercher : dans
Par :

Php postgres importation d'Images de la base

Dernière réponse le 10 jui 2008 à 11:59:56 asdeejay, le 8 jui 2008 à 09:42:10 
 Signaler ce message aux modérateurs

Bonjour,
Je suis entrain de faire un petit programme en PHP qui permet d"importer des Images .tif d'une base de donnée Postgres.
A l'aide de la fonction pg_lo_export j'ai pu importer de la base de donnée le fichier image sur le serveur local mais le problème est que le fichier est illisible (il n'est pas supporté par les logiciels que j'utilise habituellement pour lire les tif) et affiche le massage suivant "Format spécifié non valide ou non pris en charge" alors que j'utilise un logiciel qui supporte le tif sans problémes.
et voici le code que j'ai utilisé.

<?php 
/*connection a la base*/
  $con=pg_connect("host=192.168.2.56 port=5433 dbname=mabase user=utilisateur password=mon_passwpord"); 
   pg_query($con, "begin");
   $oid = 21387;    //l'oid du fichier image
   echo "$oid\n";   // afficher l'oid 
   $handle = pg_lo_open($con, $oid, "w"); //Ouvre un objet de grande taille PostgreSQL 
   pg_lo_write($handle, "données objet de grande taille");  //Ecrit un objet de grande taille PostgreSQL 
   pg_lo_close($handle);//Ferme un objet de grande taille PostgreSQL 
   pg_lo_export($con, $oid,'C:/test/image86.tif'); //Exporte un objet de grande taille vers un fichier 
   pg_query($con, "commit");
	echo '<a href="file:///C|/test/image86.tif">cliquer ici</a>'; ?>


D'où vient d'après vous la Faille. Merci


Configuration: Windows XP
Firefox 3.0

Meilleures réponses pour « php postgres importation d'Images de la base » dans :
PHP - Génération d'images Voir Prérequis PHP permet de créer des images au format GIF à l'aide d'une librairie de fonctions prévue à cet effet. La librairie permettant de créer et manipuler des fichiers graphiques se nomme GD, ainsi, pour pouvoir utiliser ces fonctions il faut...
Connexion à une base Oracle en php Voir1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à...
ImageMagick - Manipuler les images en ligne de commande VoirImageMagick est un formidable outil en ligne de commande qui permet de manipuler les images. L'avantage de cet outil est qu'il permet: d'automatiser les travaux sur les images (cela évite d'avoir à faire certaines manipulations dans...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...

1

François, le 8 jui 2008 à 10:43:46

Au vu de ton code, je ne suis pas sûr du tout que l'image soit stockée dans ta table !
A mon avis la table contient 'données objet de grande taille'
tu devrais vérifier le contenu de ton champ (tu devrais y voir du code binaire).

Pour pg_lo_import...
Pour ce genre d'opération il est très recommandé de tester la valeur retournée par la commande "pg_lo_write()".

Pour pg_lo_export...
1- D'après la doc php, le 3e argument est le path du fichier qui contiendra les données issue de la table. OUI, MAIS LE FICHIER EST VU DU COTE SERVEUR ! à priori php ne connais pas c:\test....
Tu dois donner un chemin relatif par exemple temp_rep/temp_image.tif et le lien à donner au client (navigateur) serait

<a href='temp/temp_image.tif'>image</a>

2- Pour ce genre d'opération il est très recommandé de tester la valeur retournée par la commande "pg_lo_export()".


Bref il ne faut pas hésiter à consulter la doc PHP, et les exemples sont parlant !

Répondre à François

2

 asdeejay, le 10 jui 2008 à 11:59:56
  • +1

Bonjour:
j'essaye de d'ouvrir le fichier déjà importé de la base directement, pas dans une page web, oublions le
<a href='temp/temp_image.tif'>image</a> j'ai suivi l'exemple exactement ça ne s'ouvre pas même pas avec un éditeur d'images .tif je ne comprend pas qu'est ce qui cloche.

j'ai essayé le lo_read_all aussi le contenu s'affiche sur la page web mais en chaîne de caractères, il faut connaître l'entête adéquate comment faire.
je suis dans une impasse. :(

Répondre à asdeejay