|
|
@@ -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];
|