Aller au contenu

Sujets conseillés

Posté

Bonjour,

Existe-t-il un moyen, en php, de générer un fichier zip (composé de X fichiers PDF) sans le créer physiquement sur le serveur?

Merci

Portekoi

Posté

Si ton serveur est sous Linux, zip permet de rediriger la "sortie standard" (stdout), si on donne le nom "-" au fichier de sortie, donc aussi vers un pipe qui enverra cela vers le navigateur.

Par exemple :

zip -r - . | dd of=/dev/nrst0 obs=16k

compresse récursivement le répertoire courant, et l'envoie au programme dd qui l'enverra à son tour sur une bande magnétique.

Posté

En faites, je dois le générer à la demande lorsque, par exemple, une vente c'est bien passée.

Et je veux éviter d'avoir à l'écrire sur le serveur.... En gros, pouvoir le générer et le balancer avec un header de type "zip" mais je ne sais pas si cela est possible.

Posté (modifié)

A priori, ca ne pose pas vraiement de problème d'écrire le fichier sur le disque.

Tu peux l'écrire dans le dossier /tmp (si tu es sur un linux).

Ou au pire, le créé, l'envoyer au client et le supprimer.

Cette soluce permet notament d'utiliser des scripts en ligne de commandes (zip, gz, tar...) qui sont plus intéressantes à mon avis, surtout pour compresser un dossier, que les extensions PHP.

Il existe aussi des outils pour fusionner les PDF en 1 seul fichier.

Le script PHP reste très simple

1. lancer la création du zip
2. envoyer au client (readfile par exemple)
3. supprimer le fichier du serveur (unlink)

En terme de performances, on reste très efficace ... je ne suis pas sur qu'on voit vraiement la différence avec un process hors disque qui forcément va consommer beaucoup plus de mémoire.

Modifié par MangaII

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...