From beb647463886379814bc6634ce9d5e8a94ed8764 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com> Date: Wed, 21 Aug 2024 13:40:27 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E6=96=87=E4=BB=B6=E4=B8=8B=E8=BD=BD):?= =?UTF-8?q?=20=E8=BF=94=E5=9B=9E=E5=8E=9F=E5=A7=8B=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D=EF=BC=8C=E6=96=B9=E4=BE=BF=E6=B5=8F=E8=A7=88=E5=99=A8?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 注意文件名的header 字段需要使用 URLEncoder 避免错误 --- .../pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java index 72c0a1f32..c225f13e4 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysFileServiceImpl.java @@ -24,6 +24,7 @@ import cn.hutool.core.lang.tree.TreeNode; import cn.hutool.core.lang.tree.TreeUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.URLUtil; import cn.hutool.crypto.SecureUtil; import com.amazonaws.services.s3.model.S3Object; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -42,6 +43,7 @@ import com.pig4cloud.pigx.common.file.core.FileTemplate; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; +import org.springframework.http.HttpHeaders; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -112,6 +114,7 @@ public class SysFileServiceImpl extends ServiceImpl impl response.setContentType("application/octet-stream; charset=UTF-8"); // 文件唯一hash response.addHeader("Hash", sysFile.getHash()); + response.addHeader(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + URLUtil.encode(sysFile.getOriginal())); IoUtil.copy(s3Object.getObjectContent(), response.getOutputStream()); } catch (Exception e) { log.error("文件读取异常: {}", e.getLocalizedMessage());