2009-07-15 2 views
0

Я пытаюсь закрепить большое количество PDF-файлов (хранимых как BLOB-файлы в БД), а затем вернуть zip в качестве вложения для пользователя.java servlet: генерировать zip-файл из BLOB

Каков наилучший способ сделать это без проблем с памятью?

Другое примечание: мне действительно нужно объединить некоторые PDF-файлы, прежде чем добавлять их в ZipOutputStream. Поэтому пару PDF-файлов необходимо хранить в памяти одновременно.

Я предполагаю, что было бы лучше сохранить их как временные файлы на сервере перед тем, как их застегнуть?

+0

я настоятельно рекомендую избегать временных файлов, если это вообще возможно. –

+0

@Tom: если я избегаю временных файлов, это значит, что мне нужно хранить все данные в памяти, не так ли? –

ответ

1

Вы можете создавать zip-файлы в памяти на Java с помощью ZipOutputStreams.

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

+0

Да, но эти файлы потенциально могут быть * очень большими. Плюс многие люди могут сразу же их просить. Поэтому я больше заинтересован в этом, используя наименьшую возможную память в любой момент процесса. –

+1

Вы можете использовать ZipOutputStream, чтобы передать их клиенту. –