Я пытаюсь сжать группу двоичных данных (набор результатов, возвращаемых из базы данных) в один файл. Который можно скачать через веб-приложение. Следующий код используется для сжатия набора результатов и записи файла zip в HttpServletResponse
String outFilename = "outfile.zip";
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment; filename= " + outFilename);
OutputStream os = response.getOutputStream();
ZipOutputStream out = new ZipOutputStream(os);
for (int i = 0; i < cardFileList.size(); i++) {
CardFile cardFile = cardFileList.get(i);
out.putNextEntry(new ZipEntry(cardFile.getBinaryFileName()));
out.write(cardFile.getBinaryFile(), 0, cardFile.getBinaryFile().length);
out.closeEntry();
}
// Complete the ZIP file
out.flush();
out.close();
os.close();
Проблема в том, что при разархивировании загруженного zip-файла с помощью WinRar я получаю следующую ошибку:
Путь к файлу: многочастный или поврежденный ZIP-архив
Может кто-нибудь указать, где я совершаю ошибку? Любая помощь будет оценена.
[ПРАВИТЬ] Я пытался response.setContentType("application/zip");
, но тот же результат.