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 :

Inserer une image.jpg dans table


Sujet :

PostgreSQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Inserer une image.jpg dans table
    Bonjour tlm,
    je viens d'installer la postgresql 8. Je souhaite enregistrer une image jpg ou son adresse dans un champ prévu à cet effet à partir du pgAdmin III.
    Existe t'il un tuto ou pouvez vous me guider dans les démarches.
    ... Quel type de champ dois je creer ? Comment si prendre ...
    Merci pour vos conseils !
    Loum. :

  2. #2
    Membre émérite
    Avatar de hpalpha
    Inscrit en
    Mars 2002
    Messages
    769
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 769
    Points : 2 545
    Points
    2 545
    Par défaut
    Il n'existe pas réellement de type blob en pg, par contre il existe ce que l'on appelle les Larges Objects. (lo pour les intimes).

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE employes (
        id            SERIAL,
        nom        varchar(40),
        prenom   varchar(40),
        photo      oid
    );
    coté requete, il faut utiliser lo_import et lo_export

    Insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO employes (nom, prenom, photo)
        VALUES ('Dupond','Michel', lo_import('/tmp/mdupond.jpg') );
    Select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT nom, prenom, lo_export(employes.photo, '/tmp/mdupond.jpg') FROM employes;
    Delete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select lo_unlink((select photo from employes where id = 33));
    Delphi 2009 - ZeosLib - DevExpress - TMS - PgDAC
    PostgreSQL 8.4 sous Debian
    Sites : http://postgresql.developpez.com http://dgriessinger.developpez.com

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2004
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 16
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    pour info, où sont stockées les images sous linux ?
    sous Windows, c'est dans le repertoire rep_postgresql\data\base\oid_de_la_base\nom_image.jpg
    mais je n'ai rien trouvé sous linux (redhat ES 4)
    pourtant, si je supprime l'image originale, et que je fasse un select, ça fonctionne.

    merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 27
    Points : 26
    Points
    26
    Par défaut
    Je me permets de rebondir sur ce sujet car j'ai une question qui s'en rapproche passablement.

    Voici ma requête d'insertion
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $result=pg_query("insert into images(images_nom) values(lo_import('$nom'))");
    Cependant, la variable $nom doit contenir le chemin et le nom du fichier afin que l'insert fonctionne. Ces informations, je désire les obtenir à partir d'un upload.

    J'arrive à récupérer le nom du fichier, mais pas le chemin complet...

    Comment faire?

  5. #5
    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 Emplacement de depart de l'image
    Bonjour,
    Je me permet de rebondir à mon tour :
    Ou doit être l'image de départ ?
    Sur le serveur uniquement ou y a t'il moyen d'importer une image depuis un poste client ?
    Pour l'instant je bloque la dessus
    Je voudrai que ce soit un client via une commande SQL qui importe des images vers la base. Est ce possible ?
    J'éspére être assez clair.
    Merci d'avance

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 27
    Points : 26
    Points
    26
    Par défaut
    Puisque tout le monde rebondit, je vais en profiter

    A partir d'un upload, j'arrive à insérer mon fichier (image) dans ma base de données.

    Ce qui m'embête, c'est que pour arriver à ce résultat, je mets d'abord mon upload sur le système de fichier et à partir de ce fichier, je l'insère dans la base de données. La raison? Ben pour insérer un fichier dans la base de données, il faut le chemin du fichier...

    Ma question : comment faire pour insérer un fichier dans la base de données à partir d'un upload sans stocker le fichier d'abord sur le système de fichier???

    postgres 8.0, php 4

    merci

  7. #7
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Points : 331
    Points
    331
    Par défaut
    moi aussi je rebondis

    Etes vous tous vraiment obligé de stocker vos fichiers directement dans la base ou ne pouvez vous pas juste stocker juste le chemin ?? je trouve ça mieux car ça évite de surcharger la base de données avec des lo
    L'héroïsme, c'est encore la meilleure façon de devenir célèbre quand on n'a pas de talent
    Pierre Desproges

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2004
    Messages : 27
    Points : 26
    Points
    26
    Par défaut
    Je réussis, à insérer un upload dans la base de données après avoir stocker momentanément mon fichier sur le système de fichier.

    Le problème c'est que j'essaie d'exporter mon application sous unix.

    Donc, je me suis vite rendu compte qu'il était nécessaire de modifier les droits sur le fichier. Cependant, postgres n'arrive toujours pas à l'insérer, le message suivant apparaît :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ERROR: lo_import: can't open unix file
    Comment faire pour que postgres puisse accéder à ce fichier?

Discussions similaires

  1. [jpg][D2006][Rave 6.5] mettre une image JPG dans rave
    Par SergioMaster dans le forum Rave
    Réponses: 7
    Dernier message: 28/03/2009, 16h24
  2. Insérer une image JPG dans une table
    Par jjcasalo dans le forum Développement
    Réponses: 7
    Dernier message: 15/01/2009, 14h53
  3. Copier une image jpg dans une cellule dun DrawGrid
    Par ero-sennin dans le forum Delphi
    Réponses: 13
    Dernier message: 10/07/2007, 15h57
  4. inserer une image jpg sur une fiche en saisie
    Par zazou56 dans le forum IHM
    Réponses: 4
    Dernier message: 05/02/2007, 14h39
  5. inserer une image BMP dans un fichier rtf
    Par Alice9 dans le forum MFC
    Réponses: 17
    Dernier message: 06/07/2004, 10h31

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