From 356f353a33c78ac38daa873cef491e9730aee037 Mon Sep 17 00:00:00 2001 From: YY <1272464982@qq.com> Date: Tue, 15 Jul 2025 13:59:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=8A=E4=BC=A0=E6=9C=80?= =?UTF-8?q?=E5=A4=A7=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/service/FileStorageService.java | 14 +++++++++++++- src/main/resources/application-dev.yml | 9 ++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/config/service/FileStorageService.java b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/config/service/FileStorageService.java index 73dce0b..b2bd5d0 100644 --- a/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/config/service/FileStorageService.java +++ b/src/main/java/com/chinaunicom/zyhy/ebtp/supplier/config/service/FileStorageService.java @@ -18,26 +18,38 @@ public class FileStorageService { @Value("${file.upload-dir}") private String uploadDir; + private static final long MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB,单位是字节 + public String storeFile(MultipartFile file) { + // 检查文件大小 + if (file.getSize() > MAX_FILE_SIZE) { + throw new RuntimeException("文件大小超过了最大限制(10MB)"); + } + try { String originalName = StringUtils.cleanPath(file.getOriginalFilename()); String ext = ""; + // 获取文件扩展名 int i = originalName.lastIndexOf("."); if (i >= 0) { ext = originalName.substring(i); } + // 生成新的文件名,使用UUID来避免文件名冲突 String filename = UUID.randomUUID().toString() + ext; Path copyLocation = Paths.get(uploadDir).toAbsolutePath().normalize().resolve(filename); + // 确保目标目录存在 Files.createDirectories(copyLocation.getParent()); + + // 将文件内容写入目标路径 Files.copy(file.getInputStream(), copyLocation, StandardCopyOption.REPLACE_EXISTING); return filename; } catch (IOException ex) { - throw new RuntimeException("Could not store file: " + ex.getMessage()); + throw new RuntimeException("存储文件时出错: " + ex.getMessage()); } } } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 7bb6cd1..1eb9422 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -26,6 +26,11 @@ apollo: enabled: true spring: + servlet: + multipart: + enabled: true + max-file-size: 10MB + max-request-size: 10MB cloud: nacos: discovery: @@ -210,6 +215,8 @@ management: cors: allowed-origins: "*" allowed-methods: "*" + + login: password: privateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAK8sGQAshhH/H1G/lOJdAZYBdPOto38d7zSv2BCi9JDmhM/yqWUv345zUt1OKM8VGx10daDfu6a8WWLCGa6RTU1P6jaWgZwqnIwcWRz9Q82NAu935gVHidiGA/yX52ZE061BZrA63l1uSxEpOCEyMD4UpPb6K0yxrBKzX4hz7OgjAgMBAAECgYAT/jx8QJisxSmV8v/TNjpQHKp0hYT7pTcAFHHctDylrSnLci7TVbt2TsNObvVJbWdC3V/vlJmeVjD9jJnRytO/pgc+p8I3Q3pfF7ACiBAz1+4VZM40vFz0RfQKJ/kZB3DiGohprOw60kRR0eMtHuaA07luhBCbne6700Paf+OOAQJBAP9THm3KEcnChnRBC6yPdNHLN/XplgGaIJU2Wo0biI8Oz2bM3eJGPSwrVCqObOwVPNYJIfEQRhlWlB9kpBS0ECECQQCvorUUJwJhV+Fx6bhUK5aa1/rDTODPmS1MycvLtjOp7ig1sGcb4g9Vl8uRPzsvQZ6Z+sNTD4mFFnYFneCvPL/DAkAMZo4QyQKqKO98z/fwLpt+4P7by7eEZmb0uEoXlmHAiPibxpF0PvMTpRsWYgp6QOHOh20Fl0PAUUsqZyns833hAkBEzV9UIqfrDCsTnbQIvP6FcAAay53xlRbK0u5Twe9hLRtxVMY/hQHuzMUBBB0iOPlxZmtnuVls2kynjJ4853ZTAkEAu+lLTmM7DBV9jDEc9sNM7UNa0MvAUb6r9DsTKHGLLRqB7ljQ1R2RiLRknFaegUPEVsvdMszH2rdy3CaIWkC5OQ== @@ -219,4 +226,4 @@ login: captcha: privateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAK8sGQAshhH/H1G/lOJdAZYBdPOto38d7zSv2BCi9JDmhM/yqWUv345zUt1OKM8VGx10daDfu6a8WWLCGa6RTU1P6jaWgZwqnIwcWRz9Q82NAu935gVHidiGA/yX52ZE061BZrA63l1uSxEpOCEyMD4UpPb6K0yxrBKzX4hz7OgjAgMBAAECgYAT/jx8QJisxSmV8v/TNjpQHKp0hYT7pTcAFHHctDylrSnLci7TVbt2TsNObvVJbWdC3V/vlJmeVjD9jJnRytO/pgc+p8I3Q3pfF7ACiBAz1+4VZM40vFz0RfQKJ/kZB3DiGohprOw60kRR0eMtHuaA07luhBCbne6700Paf+OOAQJBAP9THm3KEcnChnRBC6yPdNHLN/XplgGaIJU2Wo0biI8Oz2bM3eJGPSwrVCqObOwVPNYJIfEQRhlWlB9kpBS0ECECQQCvorUUJwJhV+Fx6bhUK5aa1/rDTODPmS1MycvLtjOp7ig1sGcb4g9Vl8uRPzsvQZ6Z+sNTD4mFFnYFneCvPL/DAkAMZo4QyQKqKO98z/fwLpt+4P7by7eEZmb0uEoXlmHAiPibxpF0PvMTpRsWYgp6QOHOh20Fl0PAUUsqZyns833hAkBEzV9UIqfrDCsTnbQIvP6FcAAay53xlRbK0u5Twe9hLRtxVMY/hQHuzMUBBB0iOPlxZmtnuVls2kynjJ4853ZTAkEAu+lLTmM7DBV9jDEc9sNM7UNa0MvAUb6r9DsTKHGLLRqB7ljQ1R2RiLRknFaegUPEVsvdMszH2rdy3CaIWkC5OQ== publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvLBkALIYR/x9Rv5TiXQGWAXTzraN/He80r9gQovSQ5oTP8qllL9+Oc1LdTijPFRsddHWg37umvFliwhmukU1NT+o2loGcKpyMHFkc/UPNjQLvd+YFR4nYhgP8l+dmRNOtQWawOt5dbksRKTghMjA+FKT2+itMsawSs1+Ic+zoIwIDAQAB - time_limit: 2 #Minutes \ No newline at end of file + time_limit: 2 #Minutes