微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在liferay serveResource方法中下载压缩文件

如何解决在liferay serveResource方法中下载压缩文件

在 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 举报,一经查实,本站将立刻删除。