this is 4.2 update

This commit is contained in:
chen-xin-zhi 2025-04-05 15:18:00 +08:00
parent 45cc14b98c
commit 82aef63706
2 changed files with 15 additions and 5 deletions

View File

@ -176,12 +176,22 @@ public class FileController {
filename = "feiyi/fonts/" + filename; // 字体路径 filename = "feiyi/fonts/" + filename; // 字体路径
String filePath = UPLOAD_DIR + filename; String filePath = UPLOAD_DIR + filename;
File file = new File(filePath); File file = new File(filePath);
// 清空response // // 清空response
response.reset(); // response.reset();
// 设置response的Header // 设置response的Header
response.setContentType("application/octet-stream"); response.setContentType("application/octet-stream");
response.addHeader("Content-Disposition", "inline;filename=" + URLEncoder.encode(file.getName(), StandardCharsets.UTF_8)); response.addHeader("Content-Disposition", "attachment;filename=" + file.getName());
response.setCharacterEncoding("UTF-8"); response.setContentLengthLong(file.length()); // 使用 setContentLengthLong 适应大文件
// 设置缓存相关的 HTTP
long lastModified = file.lastModified();
response.setDateHeader("Last-Modified", lastModified); // 文件最后修改时间
response.setHeader("Cache-Control", "public, max-age=86400"); // 缓存一天24小时
response.setHeader("ETag", String.valueOf(lastModified)); // 使用文件最后修改时间作为 ETag
// 使用 BufferedInputStream BufferedOutputStream 提高性能 // 使用 BufferedInputStream BufferedOutputStream 提高性能
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file), BUFFER_SIZE); try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file), BUFFER_SIZE);
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream(), BUFFER_SIZE)) { BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream(), BUFFER_SIZE)) {

View File

@ -1,6 +1,6 @@
spring: spring:
profiles: profiles:
active: dev active: prod