diff --git a/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/constants/FileConstants.java b/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/constants/FileConstants.java index 1c0e04f24..1f9670599 100644 --- a/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/constants/FileConstants.java +++ b/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/constants/FileConstants.java @@ -87,14 +87,4 @@ public interface FileConstants { */ String DEFAULT_AVATAR_FILE_OBJ_NAME = "defaultAvatar.png"; - /** - * 默认头像的文件文件名 - */ - String DEFAULT_AVATAR_FILE_FINAL_NAME = "10000.png"; - - /** - * 系统默认的头像 - */ - String DEFAULT_BASE_64_AVATAR = "/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAFA3PEY8MlBGQUZaVVBfeMiCeG5uePWvuZHI////////////////////////////////////////////////////2wBDAVVaWnhpeOuCguv/////////////////////////////////////////////////////////////////////////wAARCAIcAhEDASEAAhEBAxEB/8QAGQABAQEBAQEAAAAAAAAAAAAAAAECAwQF/8QAJRABAQACAgIBBQEBAQEAAAAAAAECESExAxJBBCIyUWETcRSB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oADAMBAAIRAxEAPwDxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAIAAAAAAAKAaNAaNAaNAaNAaNAaNAaNAaNAaNAaNAapqgetPWgetPWgetPWoL609aB609aB609aB609aB609aaHrQ0ZFBQAAAAAAAAEAAAAAUAAAUkQNICyba/zvwCXGzuIAAAACgAAACAAoAAAAAAAoA5jSCgAAAAAAAAAAAgACgDWOvkEk3eF9aglAPjg7BdT9tTOyaFanklmrGcsJreIM6v6QQAABQAAQAUUEAABQAAAAAHMaQUAAAAAAAAAAAWcpZoFmNy6TVnYOlwn+e52sxxyxnxQYv20kl7QPaziJ7X9qJsAlXYIAull18orUzny1PXL+AxljZWRAAAABQAAAAAAANgbNgbNgbAYFBQAAAEAAABQAFgJ1XSSUGsftykiZ/lYisXeNXLU5lVGLdgIAACgbWWAuy2WczlAkTfIrWOWu2rhMpvEHK8CoAAgAAAAbNgGwNmwNmwNmwNmwNgIKCgAAAIAAACgAGwKuN0Drr2w4vMc7lf/qCZXbKgAAAAAoC8Lx8oN+ks3jWbLPgVn/rWN10DXkxtx3pyVEAAAAAAAAAAAAAAAAAFAAAAQAAAABRABQaxysvBnZeUGBQAAAAAFBZpqaqC6s66WXXIq3GZf9Y9csQax8lnGSZ4/M6BzsRUAAAAAFAAAAAAAAAQAUAAABAAAFQBFAAAXYCAAAAAAAA1bCA3zOiVFaljUy9b+4gmcl50xrnXwoZYcbjnoAVAAAAAQAAA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"; - } diff --git a/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/enums/FileLocationEnum.java b/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/enums/FileLocationEnum.java index 75754a1a8..cbdaeb99b 100644 --- a/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/enums/FileLocationEnum.java +++ b/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/enums/FileLocationEnum.java @@ -53,7 +53,12 @@ public enum FileLocationEnum { /** * 本地 */ - LOCAL(4); + LOCAL(4), + + /** + * 数据库中 + */ + DB(5); private final Integer code; diff --git a/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/expander/FileConfigExpander.java b/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/expander/FileConfigExpander.java index 54b9fe955..98672eade 100644 --- a/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/expander/FileConfigExpander.java +++ b/kernel-d-file/file-api/src/main/java/cn/stylefeng/roses/kernel/file/api/expander/FileConfigExpander.java @@ -106,14 +106,4 @@ public class FileConfigExpander { return ConfigContext.me().getSysConfigValueWithDefault("SYS_LOCAL_FILE_SAVE_PATH_WINDOWS", String.class, new LocalFileProperties().getLocalFileSavePathWin()); } - /** - * 默认的系统头像,base64编码的 - * - * @author fengshuonan - * @date 2020/12/29 20:10 - */ - public static String getDefaultAvatarBase64() { - return ConfigContext.me().getSysConfigValueWithDefault("SYS_DEFAULT_AVATAR_BASE64", String.class, FileConstants.DEFAULT_BASE_64_AVATAR); - } - } diff --git a/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/controller/SysFileInfoController.java b/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/controller/SysFileInfoController.java index 6a5465b21..b7ac3c3ed 100644 --- a/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/controller/SysFileInfoController.java +++ b/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/controller/SysFileInfoController.java @@ -72,6 +72,10 @@ public class SysFileInfoController { /** * 上传文件 + *
+ * 支持上传到数据库,参数fileLocation传递5即可 + *
+ * fileLocation传递其他值或不传值,不能决定文件上传到本地还是阿里云或其他地方
*
* @author majianguo
* @date 2020/12/27 13:17
diff --git a/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/entity/SysFileStorage.java b/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/entity/SysFileStorage.java
new file mode 100644
index 000000000..fb9611b4e
--- /dev/null
+++ b/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/entity/SysFileStorage.java
@@ -0,0 +1,32 @@
+package cn.stylefeng.roses.kernel.file.modular.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+
+/**
+ * 文件存储信息实例类
+ *
+ * @author fengshuonan
+ * @date 2022/01/08 15:53
+ */
+@TableName("sys_file_storage")
+@Data
+public class SysFileStorage {
+
+ /**
+ * 文件主键id,关联file_info表的主键
+ */
+ @TableId(value = "file_id", type = IdType.ASSIGN_ID)
+ private Long fileId;
+
+ /**
+ * 具体文件的字节信息
+ */
+ @TableField("file_bytes")
+ private byte[] fileBytes;
+
+}
\ No newline at end of file
diff --git a/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/factory/FileInfoFactory.java b/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/factory/FileInfoFactory.java
index af8e095f2..7a210943c 100644
--- a/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/factory/FileInfoFactory.java
+++ b/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/factory/FileInfoFactory.java
@@ -31,12 +31,14 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import cn.stylefeng.roses.kernel.file.api.FileOperatorApi;
+import cn.stylefeng.roses.kernel.file.api.enums.FileLocationEnum;
import cn.stylefeng.roses.kernel.file.api.enums.FileStatusEnum;
import cn.stylefeng.roses.kernel.file.api.exception.FileException;
import cn.stylefeng.roses.kernel.file.api.exception.enums.FileExceptionEnum;
import cn.stylefeng.roses.kernel.file.api.expander.FileConfigExpander;
import cn.stylefeng.roses.kernel.file.api.pojo.request.SysFileInfoRequest;
import cn.stylefeng.roses.kernel.file.modular.entity.SysFileInfo;
+import cn.stylefeng.roses.kernel.file.modular.service.SysFileStorageService;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import org.springframework.web.multipart.MultipartFile;
@@ -62,6 +64,7 @@ public class FileInfoFactory {
public static SysFileInfo createSysFileInfo(MultipartFile file, SysFileInfoRequest sysFileInfoRequest) {
FileOperatorApi fileOperatorApi = SpringUtil.getBean(FileOperatorApi.class);
+ SysFileStorageService fileStorageService = SpringUtil.getBean(SysFileStorageService.class);
// 生成文件的唯一id
Long fileId = IdWorker.getId();
@@ -88,7 +91,12 @@ public class FileInfoFactory {
if (StrUtil.isNotEmpty(sysFileInfoRequest.getFileBucket())) {
fileBucket = sysFileInfoRequest.getFileBucket();
}
- fileOperatorApi.storageFile(fileBucket, finalFileName, bytes);
+ // 如果是存在数据库库里,单独处理一下
+ if (FileLocationEnum.DB.getCode().equals(sysFileInfoRequest.getFileLocation())) {
+ fileStorageService.saveFile(fileId, bytes);
+ } else {
+ fileOperatorApi.storageFile(fileBucket, finalFileName, bytes);
+ }
} catch (IOException e) {
throw new FileException(FileExceptionEnum.ERROR_FILE, e.getMessage());
}
@@ -102,7 +110,12 @@ public class FileInfoFactory {
// 封装存储文件信息(上传替换公共信息)
SysFileInfo sysFileInfo = new SysFileInfo();
sysFileInfo.setFileId(fileId);
- sysFileInfo.setFileLocation(fileOperatorApi.getFileLocationEnum().getCode());
+ // 如果是存在数据库库里,单独处理一下
+ if (FileLocationEnum.DB.getCode().equals(sysFileInfoRequest.getFileLocation())) {
+ sysFileInfo.setFileLocation(FileLocationEnum.DB.getCode());
+ } else {
+ sysFileInfo.setFileLocation(fileOperatorApi.getFileLocationEnum().getCode());
+ }
sysFileInfo.setFileBucket(fileBucket);
sysFileInfo.setFileObjectName(finalFileName);
sysFileInfo.setFileOriginName(originalFilename);
diff --git a/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/mapper/SysFileStorageMapper.java b/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/mapper/SysFileStorageMapper.java
new file mode 100644
index 000000000..dc66dcaf0
--- /dev/null
+++ b/kernel-d-file/file-business/src/main/java/cn/stylefeng/roses/kernel/file/modular/mapper/SysFileStorageMapper.java
@@ -0,0 +1,14 @@
+package cn.stylefeng.roses.kernel.file.modular.mapper;
+
+import cn.stylefeng.roses.kernel.file.modular.entity.SysFileStorage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 文件存储信息 Mapper 接口
+ *
+ * @author fengshuonan
+ * @date 2022/01/08 15:53
+ */
+public interface SysFileStorageMapper extends BaseMapper