From 54517a5125793ec13accc0e7f1714f3d5703367f Mon Sep 17 00:00:00 2001 From: zhengyouxiancq Date: Tue, 4 Mar 2025 15:39:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=99=90=E5=88=B6=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=8F=AA=E8=83=BD=E4=B8=8A=E4=BC=A0=E5=9B=BE=E7=89=87,?= =?UTF-8?q?=E5=8F=AF=E8=87=AA=E8=A1=8C=E4=BF=AE=E6=94=B9=E6=88=96=E5=88=A0?= =?UTF-8?q?=E9=99=A4,=E8=A7=A3=E5=86=B3=E5=95=86=E7=94=A8=E5=AE=89?= =?UTF-8?q?=E5=85=A8=E6=BC=8F=E6=B4=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infra/controller/admin/file/FileController.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java index 2f92adc0e..7b13d1be2 100644 --- a/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java +++ b/yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/file/FileController.java @@ -24,6 +24,7 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.module.infra.framework.file.core.utils.FileTypeUtils.writeAttachment; @@ -42,6 +43,14 @@ public class FileController { public CommonResult uploadFile(FileUploadReqVO uploadReqVO) throws Exception { MultipartFile file = uploadReqVO.getFile(); String path = uploadReqVO.getPath(); + // 校验文件类型 + String extname = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")).toLowerCase(); + if(StrUtil.isEmpty(extname)){ + return error(3379,"只能上传图片文件!"); + } + if(!".bmp,.jpg,.jpeg,.png".contains(extname)) { + return error(3379,"只能上传图片文件!"); + } return success(fileService.createFile(file.getOriginalFilename(), path, IoUtil.readBytes(file.getInputStream()))); } From 917a652491e3ca1c84b5c9073d63b31785760f4e Mon Sep 17 00:00:00 2001 From: zhengyouxiancq Date: Tue, 4 Mar 2025 15:54:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=BB=99=E7=81=B0=E5=BA=A6=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E5=A2=9E=E5=8A=A0API=E9=93=BE=E6=8E=A5=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gateway/filter/grey/GrayLoadBalancer.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayLoadBalancer.java b/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayLoadBalancer.java index 452e5fdb0..50f38dcff 100644 --- a/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayLoadBalancer.java +++ b/yudao-gateway/src/main/java/cn/iocoder/yudao/gateway/filter/grey/GrayLoadBalancer.java @@ -51,12 +51,22 @@ public class GrayLoadBalancer implements ReactorServiceInstanceLoadBalancer { public Mono> choose(Request request) { // 获得 HttpHeaders 属性,实现从 header 中获取 version HttpHeaders headers = ((RequestDataContext) request.getContext()).getClientRequest().getHeaders(); + //从requet中取得链接参数列表 + java.net.URI uri = ((RequestDataContext) request.getContext()).getClientRequest().getUrl(); + java.util.Map queryParams = java.util.stream.Stream.of(uri.getQuery().split("&")) + .filter(s -> !s.isEmpty()) + .map(s -> s.split("=")) + .collect(java.util.stream.Collectors.toMap( + arr -> arr[0], + arr -> arr.length > 1 ? arr[1] : "", + (existing, replacement) -> existing + )); // 选择实例 ServiceInstanceListSupplier supplier = serviceInstanceListSupplierProvider.getIfAvailable(NoopServiceInstanceListSupplier::new); - return supplier.get(request).next().map(list -> getInstanceResponse(list, headers)); + return supplier.get(request).next().map(list -> getInstanceResponse(list, headers,queryParams)); } - private Response getInstanceResponse(List instances, HttpHeaders headers) { + private Response getInstanceResponse(List instances, HttpHeaders headers, java.util.Map queryParams) { // 如果服务实例为空,则直接返回 if (CollUtil.isEmpty(instances)) { log.warn("[getInstanceResponse][serviceId({}) 服务实例列表为空]", serviceId); @@ -64,8 +74,12 @@ public class GrayLoadBalancer implements ReactorServiceInstanceLoadBalancer { } // 筛选满足 version 条件的实例列表 - String version = headers.getFirst(VERSION); + String version1 = headers.getFirst(VERSION); + if(StrUtil.isEmpty(version1)) { + version1 = queryParams.get("version"); + } List chooseInstances; + String version = version1; if (StrUtil.isEmpty(version)) { chooseInstances = instances; } else {