文件上传修改
This commit is contained in:
parent
05c3507dae
commit
7231778bbb
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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_json(ocr识别的参数["姓名","性别"])等参数
|
||||
// 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue