From c3f6e68770cf6a61c6279fbc1ba24e57b1563bfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= Date: Mon, 12 May 2025 18:01:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(sys-file):=20=E5=A2=9E=E5=8A=A0=E5=AF=B9?= =?UTF-8?q?=E5=8E=86=E5=8F=B2URL=E5=8F=82=E6=95=B0=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E7=9A=84=E5=85=BC=E5=AE=B9=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增对/admin/sys-file/local?fileName=xxx.png格式的兼容支持 - 使用HttpUtil解析URL中的fileName参数 - 当URL参数存在时优先使用参数中的fileName值 --- .../pigx/admin/service/impl/SysFileServiceImpl.java | 10 ++++++++++ 1 file changed, 10 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 f15b44c49..2c6529a66 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 @@ -22,10 +22,12 @@ import cn.hutool.core.io.IoUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNode; import cn.hutool.core.lang.tree.TreeUtil; +import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.URLUtil; import cn.hutool.crypto.SecureUtil; +import cn.hutool.http.HttpUtil; import com.amazonaws.services.s3.model.S3Object; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -51,6 +53,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; +import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.util.*; @@ -109,6 +112,13 @@ public class SysFileServiceImpl extends ServiceImpl impl @Override public void getFile(String fileName, HttpServletResponse response) { TenantContextHolder.setTenantSkip(); + // 增加历史数据兼容 /admin/sys-file/local?fileName=xxx.png + Map stringMap = HttpUtil.decodeParamMap(fileName, Charset.defaultCharset()); + String urlFileName = MapUtil.getStr(stringMap, "fileName"); + if (StrUtil.isNotBlank(urlFileName)) { + fileName = urlFileName; + } + SysFile sysFile = baseMapper.selectOne(Wrappers.lambdaQuery().eq(SysFile::getFileName, fileName)); try (S3Object s3Object = fileTemplate.getObject(sysFile.getBucketName(), sysFile.getDir(), fileName)) { response.setContentType("application/octet-stream; charset=UTF-8");