文件上传修改

This commit is contained in:
cwchen 2025-10-22 14:09:24 +08:00
parent 05c3507dae
commit 7231778bbb
5 changed files with 87 additions and 10 deletions

View File

@ -29,13 +29,25 @@ public class CommonUploadController {
@ApiOperation(value = "上传小文件---5M以内", notes = "上传文件无需OCR识别")
@PostMapping(value = "uploadSmallFile")
private AjaxResult uploadSmallFile(@RequestParam(name = "file",required = true) MultipartFile file,@RequestParam(name = "params",required = true)String params) throws Exception {
private AjaxResult uploadSmallFile(@RequestParam(name = "file",required = false) MultipartFile file,@RequestParam(name = "params",required = false)String params) throws Exception {
return service.uploadSmallFile(file,params);
}
@ApiOperation(value = "上传大文件---5M以上", notes = "上传文件无需OCR识别")
@PostMapping(value = "uploadLargeFile")
private AjaxResult uploadLargeFile(@RequestParam(name = "file",required = false) MultipartFile file,@RequestParam(name = "params",required = false)String params) throws Exception {
return service.uploadLargeFile(file,params);
}
@ApiOperation(value = "上传小文件---5M以内", notes = "上传文件并使用OCR识别")
@PostMapping(value = "uploadSmallFileByOcr")
private AjaxResult uploadSmallFileByOcr(@RequestParam(name = "file",required = false) MultipartFile file,String params){
private AjaxResult uploadSmallFileByOcr(@RequestParam(name = "file",required = false) MultipartFile file,@RequestParam(name = "params",required = false)String params){
return service.uploadSmallFileByOcr(file,params);
}
@ApiOperation(value = "上传大文件---5M以上", notes = "上传文件并使用OCR识别")
@PostMapping(value = "uploadLargeFileByOcr")
private AjaxResult uploadLargeFileByOcr(@RequestParam(name = "file",required = false) MultipartFile file,@RequestParam(name = "params",required = false)String params){
return service.uploadLargeFileByOcr(file,params);
}
}

View File

@ -20,6 +20,7 @@ import javax.annotation.Resource;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
* @className:CommonUploadService
@ -53,6 +54,31 @@ public class CommonUploadService {
* @date 2025/10/17 16:42
*/
public AjaxResult uploadSmallFile(MultipartFile file, String params) {
return commonUploadFile(file,params,"small");
}
/**
* 上传大文件---5M以上 --- 上传文件无需OCR识别
* @param file
* @param params
* @return AjaxResult
* @author cwchen
* @date 2025/10/17 16:42
*/
public AjaxResult uploadLargeFile(MultipartFile file, String params) {
return commonUploadFile(file,params,"large");
}
/**
* 上传文件
* @param file
* @param params
* @param uploadSize
* @return AjaxResult
* @author cwchen
* @date 2025/10/22 14:06
*/
public AjaxResult commonUploadFile(MultipartFile file, String params,String uploadSize) {
// params(json字符串) 参数需要传 suffix等参数
JSONObject jsonObj = JSONObject.parseObject(params);
// 获取文件前缀
@ -60,7 +86,12 @@ public class CommonUploadService {
// 生成文件路径
String uploadPath = FileUtil.generateDatePath(file, suffix).replace("\\", "/");
// 上传结果
String uploadResult = fileUploadService.uploadFile(file, uploadPath);
String uploadResult = null;
if(Objects.equals(uploadSize,"small")){
uploadResult = fileUploadService.uploadFile(file, uploadPath);
}else if(Objects.equals(uploadSize,"large")){
uploadResult = fileUploadService.uploadLargeFile(file, uploadPath);
}
if(StringUtils.isEmpty(uploadResult)){
return AjaxResult.error(Constants.UPLOAD_ERROR);
}
@ -76,16 +107,47 @@ public class CommonUploadService {
* @date 2025/10/17 16:42
*/
public AjaxResult uploadSmallFileByOcr(MultipartFile file, String params) {
return commonUploadFileByOcr(file, params,"small");
}
/**
* 上传大文件---5M以上 --- 上传文件并使用OCR识别
* @param file
* @param params
* @return AjaxResult
* @author cwchen
* @date 2025/10/17 16:42
*/
public AjaxResult uploadLargeFileByOcr(MultipartFile file, String params) {
return commonUploadFileByOcr(file, params,"large");
}
/**
* 上传文件-ocr识别
* @param file
* @param params
* @return AjaxResult
* @author cwchen
* @date 2025/10/22 14:01
*/
public AjaxResult commonUploadFileByOcr(MultipartFile file, String params,String uploadSize) {
// params(json字符串) 参数需要传 suffix文件保存前缀fields_jsonocr识别的参数["姓名","性别"]等参数
// uploadSize: small:小文件 large大文件
JSONObject jsonObj = JSONObject.parseObject(params);
// 获取文件前缀
String suffix = UploadSuffixEnum.getValueByKey(jsonObj.getString("suffix"));
// 生成文件路径
String uploadPath = FileUtil.generateDatePath(file, suffix).replace("\\", "/");
String uploadResult = fileUploadService.uploadFile(file, uploadPath);
String uploadResult = null;
if(Objects.equals(uploadSize,"small")){
uploadResult = fileUploadService.uploadFile(file, uploadPath);
}else if(Objects.equals(uploadSize,"large")){
uploadResult = fileUploadService.uploadLargeFile(file, uploadPath);
}
if(StringUtils.isEmpty(uploadResult)){
return AjaxResult.error(Constants.UPLOAD_ERROR);
}
Map<String, Object> map = new HashMap<>(16);
OcrResponse ocrResponse = null;
try {
// 获取Minio临时文件
@ -99,10 +161,12 @@ public class CommonUploadService {
ocrResponse = ocrService.callOcrService(ocrRequest);
} catch (Exception e) {
log.error(e.toString(),e.getMessage());
return AjaxResult.error(Constants.UPLOAD_ERROR);
}
Map<String, Object> map = new HashMap<>(16);
map.put("uploadPath", uploadPath);
map.put("ocrResult", ocrResponse);
return AjaxResult.success(Constants.UPLOAD_SUCCESS,map);
}
}

View File

@ -59,9 +59,9 @@ spring:
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
max-file-size: -1
# 设置总上传的文件大小
max-request-size: 20MB
max-request-size: -1
# 服务模块
devtools:
restart:

View File

@ -61,9 +61,9 @@ public class FileUploadService {
* @param file
* @return
*/
public SysFile uploadLargeFile(MultipartFile file, String path) {
public String uploadLargeFile(MultipartFile file, String path) {
try{
return minioUtil.uploadFile(file, path);
return minioUtil.uploadFile(file, path).getName();
}catch (Exception e){
log.error(e.toString(),e);
}

View File

@ -115,7 +115,8 @@ public class OcrService {
} catch (Exception e) {
log.error("调用OCR服务失败", e);
throw new IOException("OCR服务调用失败: " + e.getMessage(), e);
return null;
// throw new IOException("OCR服务调用失败: " + e.getMessage(), e);
} finally {
// 清理临时文件
if (ocrRequest.getFile() != null && ocrRequest.getFile().exists()) {