IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Ouverture d'une image via un script PHP


Sujet :

PostgreSQL

  1. #1
    Membre du Club Avatar de passie
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 55
    Points
    55
    Par défaut Ouverture d'une image via un script PHP
    Bonjour à tous,
    Débutant avec PHP
    Voila maintenant un moment que je cherche à ouvrir une image stockée dans une table POSTGRE sous mandriva.
    Je pense avoir correctement inséré l'image mais je n'arrive pas à l'ouvrir sur une page HTML.
    Je récupére bien la valeur de l'OID mais c'est tout.
    Je récupere juste une longue série de symboles qui doivent être mon image (c'est déja un début mais je ne progresse plus)
    Si quelqu'un peut m'éclairer merci d'avance.
    Ci joint le code avec je l'espére pas trop d'erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    include "connect.inc.php"; //connexion à la base
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html lang="fr-fr">
    <head>
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
      <title>index.html</title>
    </head>
    <body>
    <div align="center"><strong>TEST PHOTO</strong></div>
    <hr>
    	<?PHP
    		$id = $_POST['id'];
    		echo "$id<br/>";
    		$requete = "SELECT nom,prenom,photo FROM t_trombinoscope WHERE id = '$id'";
    		$query = pg_query($db,$requete);
    		$nom = pg_fetch_result($query, 0, 0);
    		$prenom = pg_fetch_result($query, 0, 1);
    		$photo =  pg_fetch_result($query, 0, 2);
    		echo "Nom : $nom<br/>";
    		echo "Prenom : $prenom<br/>";
    		echo "Num photo : $photo<br/>";
    		//echo $photo;
       	pg_query($db, "begin");
       	$handle = pg_lo_open($db, $photo, "r");
       	$data = pg_lo_read_all($handle);
       	pg_query($db, "commit");
    	echo $dphoto;
    	?>
    </body>
    </html>

  2. #2
    Membre averti

    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 338
    Points : 404
    Points
    404
    Par défaut
    Bonjour

    Quel est le type du champ contenant la photo ?
    Christophe Chauvet
    Consultant Odoo
    Python / PostgreSQL

  3. #3
    Membre du Club Avatar de passie
    Inscrit en
    Février 2005
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 56
    Points : 55
    Points
    55
    Par défaut
    Bonjour,
    C'est un champ de type OID
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE t_trombinoscope
    (
      id serial NOT NULL,
      nom varchar(40),
      prenom varchar(40),
      photo oid,
      CONSTRAINT id_pk PRIMARY KEY (id)
    ) 
    WITH OIDS;
    Et j'ai inséré les photos par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO t_trombinoscope(nom,prenom,photo) VALUES ('TITI','TOTO',lo_import('/home/serveur/titi_toto.jpg'));
    Lorsque je regarde ma table via pgadmin je retrouve un entier dans le champ photo
    Voila Merci

  4. #4
    Membre averti

    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 338
    Points : 404
    Points
    404
    Par défaut
    Il va falloir faire un lo_export() dans le SELECT, c-a-d recrée le fichier d'origine, on le placera dans un répertoire temporaire.

    Donc la requête sera la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "SELECT nom,prenom,photo FROM t_trombinoscope WHERE id = '$id'";
    deviendra

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete = "SELECT nom,prenom,lo_export(photo,'/tmp/monimage.jpg') FROM t_trombinoscope WHERE id = '$id'";
    ensuite on affiche l'image qui se trouve dans le répertoire temporaire avec une balise IMG.

    Une autre solution aurait été d'utilisé un champ de type bytea
    Christophe Chauvet
    Consultant Odoo
    Python / PostgreSQL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Passer une référence d'une archive zip à un script php via exec
    Par foxpowa dans le forum Langage
    Réponses: 8
    Dernier message: 08/04/2011, 15h29
  2. Réponses: 0
    Dernier message: 31/10/2009, 09h59
  3. Ouvrir une image via script shell
    Par roman67 dans le forum BSD
    Réponses: 1
    Dernier message: 30/07/2009, 18h21
  4. télécharger une image via php
    Par berti dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2008, 14h01
  5. Passer une variable dans une image via un script
    Par Lomig dans le forum Langage
    Réponses: 2
    Dernier message: 16/10/2006, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo