Окончание кода poi:
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode("დოკუმენტი-" + loan.getLoanId() + ".zip", "UTF-8"));
File f = new File("autoloanagreement.docx");
FileOutputStream fileOutputStream = new FileOutputStream(f);
document.write(fileOutputStream);
fileOutputStream.close();
System.out.println("Success");
Я установил метод обработчика контроллера на produces = "application/zip"
и всякий раз, когда я загружаю файл и пытаюсь открыть его, я получаю
Архив находится в неизвестном формате или поврежден
РЕДАКТИРОВАТЬ:
Я добавил новые строки кода и теперьzip-файл загружается и открывается, но я получаю новое сообщение об ошибке «Неожиданный конец zip-файла»
ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream(), Charset.forName("UTF-8"));
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
DocumentSettingsPart dsp = wordMLPackage.getMainDocumentPart().getDocumentSettingsPart();
org.docx4j.wml.CTSettings settings = Context.getWmlObjectFactory().createCTSettings();
BooleanDefaultTrue val = new BooleanDefaultTrue();
val.setVal(true);
// Layout Settings
org.docx4j.wml.CTCompat compat = Context.getWmlObjectFactory().createCTCompat();
compat.setDoNotExpandShiftReturn(val);
settings.setCompat(compat);
dsp.setJaxbElement(settings);
wordMLPackage.getMainDocumentPart().addTargetPart(dsp);
File f = new File("AutoLoanAgreement");
zipOutputStream.putNextEntry(new ZipEntry(f.getName()));
wordMLPackage.save(f);
FileInputStream fileInputStream = new FileInputStream(f);
IOUtils.copy(fileInputStream, zipOutputStream);
// დავხუროთ სტრიმი
fileInputStream.close();
zipOutputStream.closeEntry();