From e1d07590869b1cf6d09edc2bee67c2e7386d835d Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 21 二月 2025 09:34:34 +0800
Subject: [PATCH] 补充管理后台文件上传
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/FileController.java | 38 ++++++++++++++++++++++++++++++++++++++
1 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/FileController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/FileController.java
index 4f6954b..c6b9a6f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/FileController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/FileController.java
@@ -79,6 +79,44 @@
redisTemplate.opsForValue().set("file:" + userId, filename, 1, TimeUnit.HOURS);
return AjaxResult.success(imgstr);
}
+ @ApiOperation(value = "单文件上传", notes = "单文件上传,rename 默认不重命名")
+ @PostMapping(value = "uploadManage", headers = "content-type=multipart/form-data")
+ public AjaxResult uploadManage(@RequestParam(value = "file") MultipartFile mf) throws IOException {
+ Long userId = tokenService.getLoginUser().getUserid();
+ if(null == userId){
+ return AjaxResult.error("请先登录");
+ }
+ if (mf.isEmpty()) {
+ return AjaxResult.error("请传入文件!");
+ }
+ String TimeDir =new SimpleDateFormat("yyyy-MM-dd").format(new Date());
+ String realPath = fileUploadConfig.getLocation() + TimeDir;
+ File file = new File(realPath);
+ // 没有目录就创建
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+ // 获取文件名称
+ String filename = mf.getOriginalFilename();
+ if(filename.contains("../")){
+ filename = filename.replaceAll("\\.\\./", "");
+ }
+ // 获取文件后缀
+ String ext = filename.substring(filename.lastIndexOf(".") + 1);
+ // 检查文件类型
+ if (!fileUploadConfig.getAllowExt().contains(ext)) {
+ return AjaxResult.error("上传文件格式不正确,仅支持" + fileUploadConfig.getAllowExt());
+ }
+ filename = UUID.randomUUID() + "." + ext;
+ File targetFile = new File(realPath, filename);//目标文件
+ //开始从源文件拷贝到目标文件
+ //传图片一步到位
+ mf.transferTo(targetFile);
+ //拼接数据
+ String imgstr = fileUploadConfig.getAccessPath() + TimeDir +"/"+ filename;
+ redisTemplate.opsForValue().set("file:" + userId, filename, 1, TimeUnit.HOURS);
+ return AjaxResult.success(imgstr);
+ }
// @ApiOperation(value = "单文件上传", notes = "单文件上传,rename 默认不重命名")
--
Gitblit v1.7.1