From 8c1353232269f0ddef4715f54f0ec8e3855537dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=A4=A7?= <1504665037@qq.com> Date: Sat, 24 Jan 2026 16:13:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=96=87=E4=BB=B6=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E8=A1=A5=E5=85=85feign=E6=8E=A5=E5=8F=A3-=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=B5=81=E5=BC=8F=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../file/controller/SysFileController.java | 51 ++++++++++--------- .../file/service/LocalSysFileServiceImpl.java | 1 - 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/ruoyi/file/controller/SysFileController.java b/src/main/java/com/ruoyi/file/controller/SysFileController.java index e876a9e..aeb0f9c 100644 --- a/src/main/java/com/ruoyi/file/controller/SysFileController.java +++ b/src/main/java/com/ruoyi/file/controller/SysFileController.java @@ -1,5 +1,10 @@ package com.ruoyi.file.controller; +import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.utils.file.FileUtils; +import com.ruoyi.file.service.ISysFileService; +import com.ruoyi.system.api.domain.SysFile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -7,20 +12,16 @@ import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; -import com.ruoyi.common.core.domain.R; -import com.ruoyi.common.core.utils.StringUtils; -import com.ruoyi.common.core.utils.file.FileUtils; -import com.ruoyi.file.service.ISysFileService; -import com.ruoyi.system.api.domain.SysFile; + +import java.io.ByteArrayOutputStream; /** * 文件请求处理 - * + * * @author ruoyi */ @RestController -public class SysFileController -{ +public class SysFileController { private static final Logger log = LoggerFactory.getLogger(SysFileController.class); @Autowired @@ -30,19 +31,15 @@ public class SysFileController * 文件上传请求 */ @PostMapping("upload") - public R upload(MultipartFile file) - { - try - { + public R upload(MultipartFile file) { + try { // 上传并返回访问地址 String url = sysFileService.uploadFile(file); SysFile sysFile = new SysFile(); sysFile.setName(FileUtils.getName(url)); sysFile.setUrl(url); return R.ok(sysFile); - } - catch (Exception e) - { + } catch (Exception e) { log.error("上传文件失败", e); return R.fail(e.getMessage()); } @@ -52,19 +49,27 @@ public class SysFileController * 文件删除请求 */ @DeleteMapping("delete") - public R delete(String fileUrl) - { - try - { - if (!FileUtils.validateFilePath(fileUrl)) - { + public R delete(String fileUrl) { + try { + if (!FileUtils.validateFilePath(fileUrl)) { throw new Exception(StringUtils.format("资源文件({})非法,不允许删除。 ", fileUrl)); } sysFileService.deleteFile(fileUrl); return R.ok(); + } catch (Exception e) { + log.error("删除文件失败", e); + return R.fail(e.getMessage()); } - catch (Exception e) - { + } + + /** + * 文件流上传请求 + */ + @PostMapping("uploadStream") + public R uploadFileByStream(String filename, String extension, ByteArrayOutputStream out) { + try { + return R.ok(sysFileService.uploadFileByStream(filename, extension, out)); + } catch (Exception e) { log.error("删除文件失败", e); return R.fail(e.getMessage()); } diff --git a/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java b/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java index 9c2adf8..11a6a58 100644 --- a/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java +++ b/src/main/java/com/ruoyi/file/service/LocalSysFileServiceImpl.java @@ -5,7 +5,6 @@ import com.ruoyi.common.core.utils.file.FileUtils; import com.ruoyi.file.utils.FileUploadUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile;