package com.ruoyi.file.controller; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; 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.file.service.ISysFileService; import com.ruoyi.system.api.domain.SysFile; /** * 文件请求处理 * * @author ruoyi */ @RestController public class SysFileController { private static final Logger log = LoggerFactory.getLogger(SysFileController.class); /** * 上传文件存储在本地的根路径 */ @Value("${file.path}") private String localFilePath; /** * 资源映射路径 前缀 */ @Value("${file.prefix}") public String localFilePrefix; /** * 域名或本机访问地址 */ @Value("${file.domain}") public String domain; @Autowired private ISysFileService sysFileService; /** * 文件上传请求 */ @PostMapping("upload") public R upload(MultipartFile file) { try { // 上传并返回新文件名称 String fileName = sysFileService.uploadFile(file, localFilePath); String url = domain + localFilePrefix + fileName; SysFile sysFile = new SysFile(); sysFile.setName(fileName); sysFile.setUrl(url); return R.ok(sysFile); } catch (Exception e) { log.error("上传文件失败", e); return R.fail(e.getMessage()); } } }