2010-07-23 9 views
1

Tous,Autoriser les utilisateurs à télécharger des fichiers PDF en environnement PHP5, ZEND, MVC

J'ai une application PHP5 écrite avec Zend Framework et le style MVC. Mon application permet à plusieurs utilisateurs de se connecter et de voir le contenu en fonction de leurs privilèges. J'ai une liste déroulante sur la page d'accueil. Lors de la sélection de la liste déroulante, un appel ajax se produit qui remplit la page avec une table. En outre, il génère un fichier PDF avec les données de la table en utilisant la bibliothèque mpdf. Il y a un lien appelé "Download PDF" dans la page pour permettre à l'utilisateur de télécharger le pdf généré.

Ma question est, dans un tel environnement, comment mieux servir pdfs à plusieurs utilisateurs? Est-ce que je devrais servir un pdf simple avec le nom commun ou devrais-je créer des pdfs multiples basés sur la valeur de liste déroulante (ressemble à une overkill)? Je ne veux pas laisser les utilisateurs voir les fichiers PDF de l'autre. En outre, où dois-je stocker les pdfs comme à peu près tout le répertoire de l'application aura seulement 750 acccess.

Merci,

Répondre

1
  • utilisateur clique sur "PDF downlod"
  • Les paramètres tels que ID sont envoyés avec ajax
  • est-il une version mise en cache du PDF avec cet ID sauvé? Ok, montrez-le à l'utilisateur; autre:
    • Générer PDF
    • en cache
    • Voir PDF à l'utilisateur

j'aurais une clé de cache comme userid-documentid (user1-document1 par exemple) et le nom de quelque chose de documents cela les ferait reconnaître dans un "dossier de téléchargement": your-app document-name date.pdf (ABC Rapport semestriel 2010-07.pdf par exemple). Je voudrais stocker le cache dans un répertoire/tmp quelque part, et présenter les données en cache avec un en-tête personnalisé;

ce qui suit est de :

<?php 
header('Content-type: application/pdf'); 

header('Content-Disposition: attachment; filename="ABC Half year report 2010-07.pdf"'); 

readfile('/tmp/user1-document1'); 
Questions connexes