Header application PDF avec base de données POSTGRE

Header application PDF avec base de données POSTGRE - PHP - Programmation

Marsh Posté le 19-11-2008 à 09:12:16    

Bonjour à tous,  
 
Après plusieurs recherches sur le web, je ne trouve pas la réponse à ma question.
J'ai une base de données POSTGRE SQL avec une tablea "documents" les champs suivant cle(int) + titre(varchar) + fichier(lo)
 
Je souhaite ouvrir le fichier PDF via un lien de type <a href="file.php?doc=$fichier">cliquez ici</a>
 
mon lien fonctionne il m'ouvre bien la boite de dialogue 'ouvrir' / 'enregistrer' / 'annuler' --> il ouvre bien acrobat reader mais après erreur fichier introuvable.
 
Voyez-vous une solution?
Merci
Jennifer

Reply

Marsh Posté le 19-11-2008 à 09:12:16   

Reply

Marsh Posté le 19-11-2008 à 11:04:14    

On peut voir le code en question?

Reply

Marsh Posté le 19-11-2008 à 11:08:09    

Ma page file.php

Code :
  1. header("Content-type: application/pdf" );
  2. header("Content-Disposition: attachment; filename=" . $_GET['titre']. '.pdf');


 
Ma page avec mon lien html

Code :
  1. <a href="adm_login_pil.php?cle=<?=$r_e['doc_cle']?>&oid=<?=$r_e['doc_file']?>&titre=<?=$r_e['doc_titre']?>cliquez ici</a>

Reply

Marsh Posté le 19-11-2008 à 11:16:16    

Et le contenu tu l'envoies comment?

Reply

Marsh Posté le 19-11-2008 à 11:22:21    

le contenu de quoi? du fichier?
si c'est le cas c'est un numéro doc_file qui est entré dans ma base de données.

Reply

Marsh Posté le 19-11-2008 à 11:32:13    

Oui mais tu fais bien un echo du contenu de ton champ "fichier" quelquepart?

Reply

Marsh Posté le 19-11-2008 à 12:25:30    

et bien non...

Reply

Marsh Posté le 19-11-2008 à 12:33:23    

Comment veux exporter ton pdf si fais pas d'echo du contenu après ton header dans ta page file.php.

 
Code :
  1. header("Content-type: application/pdf" );
  2. header("Content-Disposition: attachment; filename=" . $_GET['titre']. '.pdf');
  3.  
  4. //Récupération du contenu du fichier en base à partir de ton id_fichier passé en GET
  5. //=>echo du contenu


Normalement , dans ton lien, tu n'as pas à passer le nom du fichier, juste l'id et la clé (si ça te sert de vérification)
Le titre et le contenu tu les récupère une fois dans file.php à partir de l'id_fichier passé dans ton lien.


Message édité par Alisteroid le 19-11-2008 à 12:33:30
Reply

Marsh Posté le 19-11-2008 à 13:45:25    

ah excuse je ne comprenais pas ce que tu voulais me dire :  
voici le code :  
 

Code :
  1. $conn = g_connect();
  2. $oid = $_GET['oid'];
  3. pg_query ($conn, "begin" );
  4. $lo = pg_lo_open ( $conn, $oid, 'r' );
  5. $blob = pg_lo_read ($lo,10000000);
  6. pg_lo_close ($lo);
  7. header("Content-type: application/pdf" );
  8. header("Content-Disposition: attachment; filename=" . $_GET['titre']. '.pdf');
  9. echo $blob;

Reply

Marsh Posté le 19-11-2008 à 18:07:28    

tu veux generer quoi excatement en pdf?
car il y a un encodage particulier pour gener du .pdf.
Il y a des librairies pour, ex: tcpdf


---------------
VNR CAMENBERT
Reply

Marsh Posté le 19-11-2008 à 18:07:28   

Reply

Marsh Posté le 20-11-2008 à 09:01:54    

cesar666 a écrit :

tu veux generer quoi excatement en pdf?
car il y a un encodage particulier pour gener du .pdf.
Il y a des librairies pour, ex: tcpdf


le pdf est déjà généré, mais il est archivé en base de données.

Reply

Marsh Posté le 20-11-2008 à 09:14:23    

tu as essayé de le lire dans la page sans procéder par un enregistrement ? (en virant header("Content-Disposition: attachment; filename=" . $_GET['titre']. '.pdf');

Reply

Marsh Posté le 20-11-2008 à 14:19:07    

oui ça fonctionne si j'enlève
header("Content-Disposition: attachment; filename=" . $_GET['titre']. '.pdf');
 
pourquoi ça ne fonctionne pas en proposant le téléchargement alors?

Reply

Marsh Posté le 20-11-2008 à 14:22:08    

on dirait que le fichier est mal téléchargé.
Essaie en proposant le téléchargement avec un filename statique fichier.pdf, par exemple, au lieu de $_GET['titre'].'.pdf'.
D'ailleurs, $_GET['titre'] est-il initialisé ?

Reply

Marsh Posté le 20-11-2008 à 14:33:34    

non ça fonctionne pas avec un filename statique
oui mon $_GET['titre'] est initialisé

Reply

Marsh Posté le 20-11-2008 à 14:38:30    

et quand tu ne propose pas le téléchargement, et que tu enregistres via adobe alors çà fonctionne ?

Reply

Marsh Posté le 20-11-2008 à 14:39:05    

oui

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed