Php postgres importation d'Images de la base
asdeejay
Messages postés
9
Statut
Membre
-
asdeejay Messages postés 9 Statut Membre -
asdeejay Messages postés 9 Statut Membre -
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é.
D'où vient d'après vous la Faille. Merci
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
A voir également:
- Php postgres importation d'Images de la base
- Base de registre - Guide
- Votre appareil ne dispose pas des correctifs de qualité et de sécurité importants - Guide
- Des images - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Formules excel de base - Guide
1 réponse
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
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 !
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 !
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. :(