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