Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
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 04/10/2004, 14h41   #1
Invité de passage
 
Inscription : septembre 2004
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5
Points : 1
Points : 1
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. :
loumanga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2004, 13h38   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
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 :
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 :
1
2
INSERT INTO employes (nom, prenom, photo)
    VALUES ('Dupond','Michel', lo_import('/tmp/mdupond.jpg') );
Select
Code :
1
2
 
SELECT nom, prenom, lo_export(employes.photo, '/tmp/mdupond.jpg') FROM employes;
Delete
Code :
SELECT lo_unlink((SELECT photo FROM employes WHERE id = 33));
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2005, 15h54   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 16
Points : 11
Points : 11
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
jacques trepp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2005, 14h34   #4
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 27
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 27
Points : 11
Points : 11
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 :
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?
yuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/11/2005, 14h25   #5
Membre à l'essai
 
Inscription : février 2005
Messages : 54
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 54
Points : 23
Points : 23
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
passie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2006, 17h26   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 27
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 27
Points : 11
Points : 11
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
yuri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2006, 12h09   #7
Membre confirmé
 
Inscription : septembre 2003
Messages : 302
Détails du profil
Informations personnelles :
Âge : 31

Informations forums :
Inscription : septembre 2003
Messages : 302
Points : 251
Points : 251
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
papy_tergnier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2006, 14h14   #8
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 27
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 27
Points : 11
Points : 11
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 :
1
2
 
ERROR: lo_import: can't open unix file
Comment faire pour que postgres puisse accéder à ce fichier?
yuri 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 11h23.


 
 
 
 
Partenaires

Hébergement Web