首页 > 其他分享 >base64转文件与图片上传minio

base64转文件与图片上传minio

时间:2023-03-28 18:36:14浏览次数:35  
标签:return minio base64 List file urlList new MultipartFile 上传

public boolean photoSave(CarIdentifyData carIdentifyData){
List<String> strings = new ArrayList<>();
strings.add(carIdentifyData.getCarPhoto());
strings.add(carIdentifyData.getCarNumberPhoto());
// base64转文件
MultipartFile[] Files =base64ToMultipartUtils.base64ToMultipartFile(strings);
// 车辆图片和车牌图片上传minio
List<String> urlList = base64ToMultipartUtils.upload(Files);
if (ObjectUtils.isNotEmpty(urlList)) {
carIdentifyData.setCarPhoto(urlList.get(0));
carIdentifyData.setCarNumberPhoto(urlList.get(1));

super.save(carIdentifyData);
return true;
}else {
return false;
}
}


base64转文件:
public MultipartFile[] base64ToMultipartFile(List<String> listBase64){
MultipartFile[] files = new MultipartFile[2];
try {
for (int i = 0; i < listBase64.size(); i++) {
Base64.Decoder decoder = Base64.getMimeDecoder();
// 去掉base64前缀 data:image/jpeg;base64,
byte[] b = decoder.decode(listBase64.get(i));
// 处理数据
for (int j = 0; j < b.length; ++j) {
if (b[j] < 0) {
b[j] += 256;
}
}
InputStream inputStream = new ByteArrayInputStream(b);
String string = UUID.randomUUID().toString().concat(".png");
MultipartFile file = new MockMultipartFile(string,string,ContentType.IMAGE_PNG.toString(), inputStream);
if(ObjectUtils.isNotEmpty(file)){
files[i] = file;
}
inputStream.close();
}
return files;
} catch (Exception e) {
log.info("base64ToMultipartFile - {}", e.getStackTrace());
return files;
}
}

图片上传minio:
public List<String> upload(MultipartFile[] file) {
List<String> objectNameList = minioUtil.upload(file);
List<String> urlList = new ArrayList<>();
if (null != objectNameList && objectNameList.size() >0) {
for (String objectName : objectNameList) {
urlList.add(minioPath + objectName);
}
return urlList;
}
return new ArrayList<>();
}

minio多文件上传工具类:
public List<String> upload(MultipartFile[] files) {
List<String> objectNameList = new ArrayList<>();
for (MultipartFile file : files){
String originalFilename = file.getOriginalFilename();
if (StringUtils.isBlank(originalFilename)){
throw new RuntimeException();
}
String fileName = UuidUtils.generateUuid() + originalFilename.substring(originalFilename.lastIndexOf("."));
String objectName = fileName;
try {
PutObjectArgs objectArgs = PutObjectArgs.builder().bucket(prop.getBucketName()).object(objectName)
.stream(file.getInputStream(), file.getSize(), -1).contentType(file.getContentType()).build();
//文件名称相同会覆盖
minioClient.putObject(objectArgs);
} catch (Exception e) {
e.printStackTrace();
return null;
}
objectNameList.add(objectName);
}
return objectNameList;
}

标签:return,minio,base64,List,file,urlList,new,MultipartFile,上传
From: https://www.cnblogs.com/heyi-77/p/17266266.html

相关文章

  • Web 大文件上传解决方案(500M以上)
    ​ 以ASP.NETCoreWebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API,包括文件的上传和下载。 准备文件上传的API #region 文件上传......
  • B/S 大文件上传解决方案(500M以上)
    ​ 最近遇见一个需要上传百兆大文件的需求,调研了七牛和腾讯云的切片分段上传功能,因此在此整理前端大文件上传相关功能的实现。在某些业务中,大文件上传是一个比较重要的......
  • minio集群docker部署
    一、社区版给的方案1、docker-compose.yaml下载地址:https://raw.githubusercontent.com/minio/minio/master/docs/orchestration/docker-compose/docker-compose.......
  • vue图片上传前压缩图片
    前言需求:项目当中上传图片的需求点肯定有很多,再上传之后,如果图片很大的话,在加载的时候就会很慢。最近发现系统首次加载越来越慢,就开始思考怎么能降低这个加载时间,由于首页......
  • 上传jcenter的坑
     第一个坑要注册个人账号!非公司账号第二个坑:-bash:./gradlew:Permissiondenied</div>执行命令的权限不够,先执行如下命令赋予权限:chmod+xgradlew 回车执行后,再执行......
  • Nginx上传文件很慢很慢
    文章转载自:https://blog.csdn.net/u014240299/article/details/105695993收到同事反馈,一个上传apk的接口,传一个180多兆的文件,一直转圈,最终提示上传文件失败Bug所处背景......
  • minio 上传图片后访问403
    上传后图片访问失败  配置一下访问权限即可  参考文章:https://blog.csdn.net/weixin_42555971/article/details/128882824?spm=1001.2101.3001.6650.1&depth_1-......
  • SpringMVC 大文件上传解决方案(500M以上)
    javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求        ......
  • 前端 大文件上传解决方案(500M以上)
    ​ HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %><!DOCTYPE html PUBLIC "-//W3C//DTDXH......
  • Element-UI el-upload组件,上传失败,但是依然显示文件列表
    问题描述最近在使用element-ui的el-upload组件,发现一个问题,就是我在上传文件过程中,上传失败了,文件列表仍然展示该文件。解决办法上传成功on-success回调方法中//除......