farm模块-批量上传

This commit is contained in:
顾君禹
2025-08-16 17:31:46 +08:00
parent 34c73d2e26
commit c34abc4a03
9 changed files with 428 additions and 14 deletions

View File

@@ -8,6 +8,8 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.*;
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileMultiUploadReqVO;
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileMultiUploadRespVO;
import cn.iocoder.yudao.module.infra.dal.dataobject.file.FileDO;
import cn.iocoder.yudao.module.infra.service.file.FileService;
import io.swagger.v3.oas.annotations.Operation;

View File

@@ -9,6 +9,7 @@ import cn.hutool.crypto.digest.DigestUtil;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.infra.controller.admin.file.vo.file.FileCreateReqVO;
@@ -41,13 +42,13 @@ public class FileServiceImpl implements FileService {
/**
* 上传文件的前缀,是否包含日期(yyyyMMdd)
*
* <p>
* 目的:按照日期,进行分目录
*/
static boolean PATH_PREFIX_DATE_ENABLE = true;
/**
* 上传文件的后缀,是否包含时间戳
*
* <p>
* 目的:保证文件的唯一性,避免覆盖
* 定制:可按需调整成 UUID、或者其他方式
*/
@@ -109,16 +110,19 @@ public class FileServiceImpl implements FileService {
fileResult.setOriginalName(file.getOriginalFilename());
fileResult.setSize(file.getSize());
fileResult.setType(file.getContentType());
try {
// 上传文件
byte[] content = IoUtil.readBytes(file.getInputStream());
String url = createFile(content, file.getOriginalFilename(), directory, file.getContentType());
// 设置成功结果
fileResult.setUrl(url);
fileResult.setSuccess(true);
successFiles.add(fileResult);
FileClient client = fileConfigService.getMasterFileClient();
fileMapper.insert(new FileDO().setConfigId(client.getId())
.setName(fileResult.getOriginalName()).setUrl(url)
.setType(fileResult.getType()).setSize((int) file.getSize()));
} catch (Exception e) {
// 设置失败结果
fileResult.setSuccess(false);