code: public static <T> ResultObject<T> upload(byte[] bytes, SimpleMultipartFile simpleMultipartFile,
                                               MultipartFileService<T> multipartFileService) {
          ResultObject<T> resultObject = new ResultObject<>();
          String md5 = JavaEncrypt.MD5.digestHex(bytes);
          String filename = md5 + FileExecutor.getSuffix(simpleMultipartFile.getOriginalFilename());
          // 文件本地路径
          String localPath = simpleMultipartFile.getStoragePath() + filename;
          simpleMultipartFile.setFilename(filename).setMd5(md5);
          Boolean exists = multipartFileService.existsMultipartFile(simpleMultipartFile);
          boolean shouldWrite = false;
          T t = null;
          if (Checker.isNull(exists)) {
              t = multipartFileService.getBySimpleMultipartFile(simpleMultipartFile);
              if (Checker.isNull(t)) {
                  // 不存在时则可以写入磁盘
                  shouldWrite = true;
              }
          } else if (!exists) {
              // 不存在时则可以写入磁盘
              shouldWrite = true;
          }
          if (shouldWrite) {
              try {
                  // 写入磁盘
                  FileExecutor.writeByteArrayToFile(new File(localPath), bytes);
              } catch (IOException e) {
                  LoggerUtils.error(e.getMessage());
                  return resultObject.copyFrom(CheckResult.getErrorResult("内部错误：文件写入失败"));
              }
              // 写入数据库（需要重写方法）
              t = multipartFileService.saveEntity(simpleMultipartFile);
          }
          return resultObject.setData(t);
      }
docs: 上传文件，简化业务代码
  
  @param bytes MultipartFile#getBytes
  @param simpleMultipartFile 请设置一下值：{@link SimpleMultipartFile#setOriginalFilename(String)}, {@link
  SimpleMultipartFile#setSize(Long)}, {@link SimpleMultipartFile#setStoragePath(String)}
  @param multipartFileService 请至少实现 {@link MultipartFileService} 接口中的一个方法
  @param <T> 原型类
  
  @return {@link ResultObject}
  
  @since 1.1.0