package com.yingyangfly.app.controller; import com.yingyangfly.common.dto.ResultResponse; import com.yingyangfly.core.annotation.Log; import com.yingyangfly.core.enums.OperatorType; import com.yingyangfly.file.api.FileClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.util.Arrays; import java.util.List; /** * * @author jiangqian * @date 2023/5/14 0014 14:30 */ @RestController @RequestMapping("/common") @Api(tags = "通用接口") @Slf4j public class UploadFileController { @Autowired private FileClient fileClient; // 允许上传的文件类型 private static final List ALLOWED_FILE_TYPES = Arrays.asList("png", "jpg", "jpeg", "doc", "xls", "ppt", "mp4", "pdf"); /** * 通用上传 * file 是文件 * dirName 是文件夹 */ @Log(title = "文件上传",operatorType = OperatorType.MOBILE) @PostMapping("/upload") @ApiOperation("文件上传") public ResultResponse upload(@RequestParam("file") MultipartFile file, @RequestParam("dirName") String dirName) { if (file.isEmpty()) { return ResultResponse.fail("文件不能为空"); } String fileName = file.getOriginalFilename(); if (fileName == null) { return ResultResponse.fail("文件名不能为空"); } // 获取文件后缀 String fileExtension = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); // 检查文件类型是否允许 if (!ALLOWED_FILE_TYPES.contains(fileExtension)) { return ResultResponse.fail("不允许的文件类型: " + fileExtension); } String upload = fileClient.upload(file, dirName); return ResultResponse.success(upload); } }