问题描述
在 Liferay 7.2 中,我需要将一些文件放入 zip 并从 serveResource 方法下载 zip 文件。实际上我已经使用 zipwriter 将所有文件放入一个 zip 文件中,我可以在 tomcat/temp 文件夹中看到 zip 文件,但没有下载文件。
HttpServletRequest request = PortalUtil.getHttpServletRequest(resourceRequest);
HttpServletResponse response = PortalUtil.getHttpServletResponse(resourceResponse);
Zipwriter zipwriter = ZipwriterFactoryUtil.getZipwriter();
resourceResponse.setProperty("Content-disposition","attachment; filename=myarchive.zip");
if (!Validator.isBlank(fileIds)) {
for (String fileId : fileIdsArr) {
if (!Validator.isBlank(fileId) && !fileId.equals(OrderConstants.ZERO)) {
DLFileEntry dlFileEntry = DLFileEntryLocalServiceUtil
.getDLFileEntry(Long.valueOf(fileId));
File file = DLFileEntryLocalServiceUtil.getFile(dlFileEntry.getFileEntryId(),dlFileEntry.getVersion(),true);
byte[] bytes = FileUtil.getBytes(file);
String fileName = dlFileEntry.getFileName();
zipwriter.addEntry(fileName,bytes);
}
}
byte[] archive = zipwriter.finish();
String contentType = MimeTypesUtil.getContentType("Documents.zip");
ServletResponseUtil.sendFile(request,response,"Documents.zip",archive,contentType);
我尝试过其他方法,如 StreamUtil.transfer.. 但我收到了 java.io.IOException: An established connection was aborted by the software in your host machine
错误
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)