From d7c6203393af8fae636c30eb6b437863498fd2a8 Mon Sep 17 00:00:00 2001 From: Mzaxd Date: Fri, 26 May 2023 09:12:20 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8DBug=E3=80=9069857?= =?UTF-8?q?=E3=80=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 报告里只有xls文件,下载后压缩包名称应该不变化,只是打开是空的。 --- .../da/report/controller/ReportManageConroller.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java b/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java index 35f3542..b8f5dba 100644 --- a/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java +++ b/adc-da-report/src/main/java/com/adc/da/report/controller/ReportManageConroller.java @@ -44,6 +44,7 @@ import java.net.URLEncoder; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import static com.adc.da.report.constant.ReportConstants.FILE_EXTENSIONS_PDF; @@ -435,9 +436,10 @@ public class ReportManageConroller { //待下载的文件id List List downLoadFileIds; - String reportName = reportDao.selectById(reportId).getName() + ".zip"; + String reportName = reportDao.selectById(reportId).getName(); + String folderName = reportName + ".zip"; // 获取编码后的文件名 - String encodedZipName = URLEncoder.encode(reportName, "UTF-8"); + String encodedZipName = URLEncoder.encode(folderName, "UTF-8"); //判断是从列表页面下载 还是预览页面下载 if (CollectionUtils.isEmpty(fileIdList)) { @@ -445,7 +447,6 @@ public class ReportManageConroller { downLoadFileIds = fileService.getDownloadFileIds(reportId); if (CollectionUtils.isEmpty(downLoadFileIds)) { log.info("无法下载,原因可能是无可下载文件(xls/xlsx文件无法下载)"); - String zipFileName = "empty.zip"; // 压缩文件名 try { // 设置响应头信息 response.setContentType("application/zip"); @@ -457,6 +458,9 @@ public class ReportManageConroller { // 创建空的ZipOutputStream ZipOutputStream zipOutputStream = new ZipOutputStream(response.getOutputStream()); + // 添加空文件夹条目 + ZipEntry emptyDirectoryEntry = new ZipEntry(reportName + "/"); + zipOutputStream.putNextEntry(emptyDirectoryEntry); zipOutputStream.close(); return; } catch (IOException e) {