gpt4 book ai didi

java - 使 Apache Poi Word 文件可通过 URL 下载

转载 作者:行者123 更新时间:2023-12-02 10:01:18 24 4
gpt4 key购买 nike

The ending of poi code:

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"上设置了 Controller 处理程序方法每当我下载文件并尝试打开它时,我都会得到

The archive is either in unknown format or damaged

EDIT :

我添加了新的代码行,现在 zip 文件已下载并打开,但我收到了新的错误消息“Unexpected end of zip file”

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();

最佳答案

您以 zip 格式发送文件,但似乎从未压缩您发送的文件。您可以将 FileOutputStream 包装在 ZipOutputStream 中,例如

OutputStream out = new ZipOutputStream(new FileOutputStream(f));

此外,您似乎从未真正将文件传递到响应的 OutputStream。

尝试:

OutputStream os = new ZipOutputStream(response.getOutputStream());
document.write(os);

关于java - 使 Apache Poi Word 文件可通过 URL 下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55613316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com