最近做了一个h5人脸采集demo,后端调用百度人脸检测API对图片质量进行把控,图片参数可以是base64类型或者URL形式。前端把图片压缩然后转为base64传回后端,后端进行质量检测合格后把base64转为MultipartFile上传到文件服务器。

Base64转MultipartFile

import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Base64;/*** @author Administrator*/
public class Base64ToMultipartFile implements MultipartFile {private final byte[] fileContent;private final String extension;private final String contentType;/*** @param base64* @param dataUri     格式类似于: data:image/png;base64*/public Base64ToMultipartFile(String base64, String dataUri) {this.fileContent = Base64.getDecoder().decode(base64.getBytes(StandardCharsets.UTF_8));this.extension = dataUri.split(";")[0].split("/")[1];this.contentType = dataUri.split(";")[0].split(":")[1];}public Base64ToMultipartFile(String base64, String extension, String contentType) {this.fileContent = Base64.getDecoder().decode(base64.getBytes(StandardCharsets.UTF_8));this.extension = extension;this.contentType = contentType;}@Overridepublic String getName() {return "param_" + System.currentTimeMillis();}@Overridepublic String getOriginalFilename() {return "file_" + System.currentTimeMillis() + "." + extension;}@Overridepublic String getContentType() {return contentType;}@Overridepublic boolean isEmpty() {return fileContent == null || fileContent.length == 0;}@Overridepublic long getSize() {return fileContent.length;}@Overridepublic byte[] getBytes() throws IOException {return fileContent;}@Overridepublic ByteArrayInputStream getInputStream() throws IOException {return new ByteArrayInputStream(fileContent);}@Overridepublic void transferTo(File file) throws IOException, IllegalStateException {try (FileOutputStream fos = new FileOutputStream(file)) {fos.write(fileContent);}}}

使用

            final String[] base64Array = base64.split(",");// 判断图片是否符合要求 略checkImageQuality// base64转为流String dataUir = base64Array[0];String data = base64Array[1];MultipartFile multipartFile = new Base64ToMultipartFile(data, dataUir);

Base64转MultipartFile相关推荐

  1. base64转MultipartFile并压缩得到压缩后对的MultipartFile

    接口接收base64转MultipartFile并压缩图片 依赖 <!-- 压缩图片依赖 --> <dependency><groupId>net.coobird& ...

  2. MultipartFile与base64互转

    MultipartFile转base64 /*** 将MultipartFile 图片文件编码为base64* @param file* @return* @throws Exception*/ pu ...

  3. Java做图片上传、文件上传、 批量上传、 Base64图片上传 。附上源码

    Java做文件上传.图片上传后台方法 利用Springboot快速搭建项目环境 项目源码已经上传到码云:https://gitee.com/jack_party/upload .喜欢的朋友可以支持一下 ...

  4. SpringBoot 二维码生成base64并上传OSS

    SpringBoot 二维码生成base64并上传OSS 基础环境 SpringBoot.Maven 代码实现 1.添加依赖 <!--二维码生成 --> <dependency> ...

  5. 动静分离-静态资源缓存控制

    一.静态资源服务与动态资源服务的区别 首先动静分离非前后端分离,关于两者的介绍如下: 动静分离:动态资源(jsp.ftl)与静态资源(js.img.css)分开 前后端分离:接口与视图分开独立开发部署 ...

  6. 百度AI实现Web端人脸识别登陆-Springboot-Vue/element-ui

    3.8 人脸识别登陆Controller 1.效果图 后台获取的数据 {"face_token":"efb5996c1707850f81e884ef190c984b&qu ...

  7. 华为云OBS文件上传下载工具类

    Java-华为云OBS文件上传下载工具类 文章目录 Java-华为云OBS文件上传下载工具类 1.华为云obs文件上传下载 2.文件流转MultipartFile 3.File转换为Multipart ...

  8. SpringBoot整合Gitee图床

    转载自:Springboot实战:实现本地上传图片到Gitee图床(含完整代码),并在其基础上增加了删除功能~!! 1.查看Gitee官方文档 https://gitee.com/api/v5/swa ...

  9. PPTPDF文件转换成图片上传OSS

    PPTPDFIMAGE 先把文件上传至本地,再去读取文件转变上传. <dependency><groupId>org.apache.pdfbox</groupId> ...

  10. java 文件格式转换

    java 系列文章 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 java 系列文章 前言 一.base ...

最新文章

  1. GitHub为所有人免费提供了所有核心功能-这就是您应该关心的原因
  2. lua学习笔记之模块、包
  3. 蓝牙mesh — 解密蓝牙mesh系列文章汇总
  4. 【时间序列】基于一维卷积自动特征提取的短期用水需求量预测
  5. Redis 主从复制
  6. 简单的python画图代码_python opencv如何实现简易画图板 python opencv实现简易画图板代码...
  7. 推荐--jQuery使用手册
  8. ZeroMQ简介:一种高性能的异步消息传递库
  9. [Ext JS6] Grid 某些行不允许删除和选择的实现
  10. C#中执行Dos命令
  11. 湖南省公务员考试计算机专业,湖南省2018年普通高等学校对口招生考试计算机应用类专业综合知识试题...
  12. 把自定义encoder加入ffmpeg源码
  13. python培训大数据分析师_CPDA数据分析师需要深入的学习python等工具吗?
  14. python二级多少分过_计算机二级分值分配 多少分及格
  15. 小米android手机怎么刷机,小米手机要刷机如何进入recovery模式
  16. dw注册页面html,在 Dreamweaver 中生成注册页 - Dreamweaver 用户指南
  17. 怎么给边框添加图片 css3,用CSS3轻松实现图片边框
  18. 实验:Android案例——小宝宝装备选择
  19. 计算机二级第一次考试不及格有没有影响,计算机二级还没有过吗?
  20. javascript基础学习 1

热门文章

  1. 关于重命名C盘User文件夹内用户名的心得
  2. 谷歌中国正式宣布李开复辞去总裁一职
  3. 联想Y460 XP下独显叹号
  4. 微电影后期制作的流程
  5. 商业虚拟专用网络技术十二 BGP/MPLS
  6. 拼接图像亮度均匀调整_浅析液晶拼接屏为什么适合应用于安防显示
  7. CAN bus 基础知识
  8. Centos8 yum配置阿里云镜像
  9. 智能家居之远程视频监控
  10. 亲爱的程序猿们怎么找工作