Ver Fonte

下载调整2

chenendian há 2 meses atrás
pai
commit
9b94657743

+ 6 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/impl/ConvergeServiceImpl.java

@@ -52,6 +52,7 @@ import java.io.FileInputStream;
 import java.io.PrintWriter;
 import java.io.Serializable;
 import java.math.BigDecimal;
+import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
@@ -134,11 +135,14 @@ public class ConvergeServiceImpl implements ConvergeService {
             }
 
             // 4. 设置响应头并下载
-            String downName = converge.getName()+IdUtils.fastSimpleUUID();
+            String downName = converge.getName() + IdUtils.fastSimpleUUID();
             response.setContentType("application/zip");
             response.setCharacterEncoding("utf-8");
             String fileName = downName + ".zip";
-            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+            
+            // 对文件名进行 URL 编码,解决中文乱码导致的 Header 非法字符异常
+            String encodedFileName = URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20");
+            response.setHeader("Content-Disposition", "attachment;filename=" + encodedFileName);
 
             try (FileInputStream fis = new FileInputStream(zipFile)) {
                 byte[] buffer = new byte[4096];