2009-07-15 13 views
0

J'essaie de compresser un grand nombre de fichiers pdf (stockés sous forme de BLOB dans la base de données), puis de renvoyer le fichier zip en pièce jointe à l'utilisateur.java servlet: générer un fichier zip à partir de BLOBs

Quelle est la meilleure façon de procéder sans rencontrer de problèmes de mémoire?

Une autre remarque: J'ai en fait besoin de fusionner certains PDF avant de les ajouter au ZipOutputStream. Par conséquent, quelques fichiers PDF devront être stockés dans la mémoire à la fois.

Je suppose qu'il serait préférable de les stocker ensuite en tant que fichiers temporaires sur le serveur avant de les compresser tous?

+0

Je suggère fortement d'éviter les fichiers temporaires si possible. –

+0

@Tom: si j'évite les fichiers temporaires, cela signifie que je dois garder toutes les données en mémoire, non? –

Répondre

1

Vous pouvez créer des fichiers zip en mémoire en Java à l'aide de ZipOutputStreams.

Voir http://www.exampledepot.com/egs/java.util.zip/CreateZip.html

+0

Oui, mais ces fichiers pourraient être * très * volumineux. De plus, beaucoup de gens pourraient les demander à la fois. Par conséquent, je suis plus intéressé à le faire en utilisant le moins de mémoire possible à un moment donné dans le processus. –

+1

Vous pouvez utiliser ZipOutputStream pour les diffuser vers le client. –

Questions connexes