文件上传接口

This commit is contained in:
liang.chao 2025-02-24 17:44:10 +08:00
parent f61c9bcd27
commit 3009c27acc
1 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,71 @@
package com.bonus.gs.sub.evaluate.evaluate.controller;
import com.bonus.gs.sub.evaluate.manager.utils.AjaxRes;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
/**
* @Authorliang.chao
* @Date2025/2/24 - 16:31
*/
@Controller
@RequestMapping("/upload")
@Slf4j
public class UploadController {
@Value("${upload.dir}")
private String uploadDir;
/**
* 文件上传
* @param file
* @return
*/
@RequestMapping(path = "/file", method = RequestMethod.POST)
@ResponseBody
public AjaxRes uploadFile(@RequestParam("file") MultipartFile file) {
AjaxRes ar = new AjaxRes();
if (file != null && !file.isEmpty()) {
// 验证文件类型
String originalFileName = file.getOriginalFilename();
String fileExtension = originalFileName != null && originalFileName.contains(".")
? originalFileName.split("\\.")[originalFileName.split("\\.").length - 1] : "";
if (!"xls".equalsIgnoreCase(fileExtension)
&& !"xlsx".equalsIgnoreCase(fileExtension)
&& !"doc".equalsIgnoreCase(fileExtension)
&& !"docx".equalsIgnoreCase(fileExtension)
&& !"jpg".equalsIgnoreCase(fileExtension)
&& !"jpeg".equalsIgnoreCase(fileExtension)
&& !"png".equalsIgnoreCase(fileExtension)) {
ar.setFailMsg("文件类型错误请上传xls/xlsx/doc/docx/jpg/jpeg/png格式的文件");
return ar;
}
}
try {
File targetDir = new File(uploadDir);
if (!targetDir.exists()) {
targetDir.mkdirs();
}
String fileName = System.currentTimeMillis() + "_" + file.getOriginalFilename();
File targetFile = new File(uploadDir, fileName);
file.transferTo(targetFile);
// 返回文件路径
String pathname = targetFile.getAbsolutePath();
ar.setSucceedMsg("文件上传成功");
ar.setSucceed(pathname);
} catch (Exception e) {
log.error(e.toString(), e);
ar.setFailMsg("文件上传失败");
}
return ar;
}
}