image dynamique en php [resolu] - PHP - Programmation
Marsh Posté le 22-01-2008 à 13:54:26
merci pour cette réponse. Et quand tu utilises la fonction :
imagepng($image);
comme je le fais, pourrais-tu m'indiquer où se trouve l'image créé pour que je puisse la désigné pour le PDF?
Marsh Posté le 22-01-2008 à 14:31:18
jenny50 a écrit : merci pour cette réponse. Et quand tu utilises la fonction : |
tu peux utiliser le seconde paramètre de cette fonction pour enregistrer l'image à l'endroit de ton choix...par exemple un répertoire temporaire le temps de générer ton pdf...
Marsh Posté le 22-01-2008 à 15:42:01
Ou carrément ne pas l'enregistrer et balancer directement vu que tu utilises fpdf donc du php directement
Marsh Posté le 22-01-2008 à 15:44:30
leflos5 a écrit : Ou carrément ne pas l'enregistrer et balancer directement vu que tu utilises fpdf donc du php directement |
oui, aussi...m'enfin je sais pas ce qu'attend fpdf moi hein, et je voulais pas compliquer le truc.
Marsh Posté le 22-01-2008 à 17:10:42
leflos5 a écrit : Ou carrément ne pas l'enregistrer et balancer directement vu que tu utilises fpdf donc du php directement |
skeye a écrit : oui, aussi...m'enfin je sais pas ce qu'attend fpdf moi hein, et je voulais pas compliquer le truc. |
Je te propose donc au préalable de lire la photo de tous les membres du personnel (fopen...etc) et d'enregistrer ce flux dans ta bd.
Dans ta table utilisateur tu auras par exemple : cle, nom, photo.
Puis tu crée un fichier getphoto.php qui prend la clé de la personne en paramètre (par exemple getphoto.php?cle=1), qui sélectionne dans la BD le flux d'image correspondant à cette personne, et qui l'écrit avec le bon header et tout le tralala pour indiquer que c'est une image.
Puis dans ton générateur de pdf tu fais un truc du genre (je me souviens plus du nom des méthodes) :
$pdf->drawimage('getphoto.php?cle='.$ma_cle_utilisateur)
Marsh Posté le 22-01-2008 à 17:21:23
CyberDenix > Et là, ça ne marche pas par ce qu'en lisant un fichier local, on exécute pas le code php qu'il contient.
jenny50 > Va faire un tour sur le site de fpdf ( www.fpdf.org ) et récupère toi le script 45 "Import d'image en mémoire". Ensuite tu fait un include sur le fichier contenant ce script et tu crés l'objet comme indiqué dans l'exemple (ton "$pdf = new fpdf()" devient "$pdf=new MEM_IMAGE();" ) . Ca te permettra d'utiliser des images contenu dans une variable php (et donc celle récupéré directement dans la base de donnée)
Marsh Posté le 22-01-2008 à 18:12:31
omega2 a écrit : CyberDenix > Et là, ça ne marche pas par ce qu'en lisant un fichier local, on exécute pas le code php qu'il contient. |
J'ai parlé trop vite... merci de me détromper !
Marsh Posté le 23-01-2008 à 09:14:30
Omega1 : je te remercie pour le conseil du script 45 sur FPDF, mais je ne le comprends pas trop.
Je reprends :
dans ma base de données j'ai bien une table nom, prenom, photo (où photo est de type 'lo' pgsql)
Voici le lien que j'utilise quand j'affiche ma photo habituellement :
Code :
|
Dans photo_uti.php j'ai ça :
Code :
|
Comment je peux faire pour afficher ma photo dans le fichier php suivant :
Code :
|
Merci beaucoup de m'aider, ça fait 2 jours que je suis dessus et je galère vraiment.
Marsh Posté le 23-01-2008 à 10:35:12
Vu ton fichier photo_uti.php, ce que tu essaye de faire ressemble énormément à l'exemple du script 45.
En partant de ton script de création de pdf :
En faisant ça, t'auras ton image dans ton fichier pdf.
Marsh Posté le 23-01-2008 à 10:53:30
Je te remercie énormément OMEGA2. Tu expliques bien et ça fonctionne bien.
Marsh Posté le 23-01-2008 à 11:04:17
OMEGA2 : je voudrais maintenant utiliser le script 70 de FPDF, toujours sur le même document. J'ai procédé de la même manière à savoir :
Code :
|
Code :
|
Et tout ça ne fonctionne pas!!!
Ah si c'était si simple !!!
Merci de ton aide
Marsh Posté le 23-01-2008 à 11:43:33
Les scripts sont fait pour ne pas dépendre de la présence d'un autre script mais uniquement de fpdf : ils étendent tous la classe FPDF en lui rajoutant des éléments. Si tu regardes les sources des différents scripts tu auras une ligne qui commence par "class" et qui finis par "extends FPDF". C'est cette ligne là qui indique cet héritage de FPDF par les classes des scripts.
Si tu veux utiliser deux scripts pour un même pdf, alors il faudra, dans l'un des deux, remplacer le "FPDF" de cette ligne là par le nom de la classe de l'autre script (par exemple "extends FPDF" deviendrait "extends MEM_IMAGE" dans le script 70) Il faut aussi rajouter un require (par exemple "require('mem_image.php');" ) dans le fichier que tu modifies pour être sur de charger tout ce qui sera nécessaire à cette version modifié sans devoir le faire dans ton source à toi.
En faisant ainsi tu obtiendras une classe qui contiendra à la fois ce qu'il faut pour pour mettre des images dans le fichier (capacité obtenu par héritage de la classe du script 70) et ce qu'il faut pour créer une table à partir d'une table html (capacité propre à la classe du script 70).
A noter que si tu veux utiliser également ce qui est dans d'autres scripts, il faudra continuer à créer, de la même manière, des dépendances entre les classes des différents scripts.
Marsh Posté le 22-01-2008 à 12:11:48
Bonjour à tous,
Je suis sur un Intranet. J'ai une table SQL du personnel. Je souhaite afficher la photo du personnel à côté de leur nom. Tout cela dans un fichier PDF.
J'utilise FPDF. POur afficher une image on utilise la fonction Image('logo.jpg').
Le problème est que mon image est générée par un fichier php car l'info est dans la base de données. si je replace "logo.jpg" par "photo.php?cle=1" cela m'affiche une erreur que je comprends.
J'ai cherché, je crois que la solution est d'enregistrer l'image générée sur mon serveur. Mais comment je dois procéder? Je ne sais pas comment utiliser mon fichier "photo.php" pour qu'à la place d'afficher une image, il me l'enregistre dans un repertoire précis (pour que je puisse l'appeler dans mon php après).
Merci par avance
Jenny
PS : pour afficher la photo dans une page normale -> img src="photo.php?cle=1"
Message édité par jenny50 le 23-01-2008 à 13:18:45