前言:有时图片量不大的时候小刘想将图片存储到数据库中,不再使用物理地址了!关于MVC配置上传参数请之前写的博客!
温馨提示:可以讲二进制数据存储到数据库中,也可以将base64位的数据存储到数据库中
其他上传博客文如下:
springMVC图片上传,单图片上传和多图片上传以及预览
Ajax实现单图片上传,多图片上传,以及和对象的综合上传
接口:
/**多方测试一斤验证
*
* 上传图片,并且转化为二进制存储数据库,
* mvc返回json会自动将二进制数据转化为base64位
* @param request
* @param file
* @return
* @throws IOException
*/
@RequestMapping(value = "/uploadBase64")
@ResponseBody
public Map<String,Object> uploadBase64(HttpServletRequest request,
@RequestParam("file") MultipartFile file) throws IOException {
Map<String,Object>map=new HashMap<>();
byte[] bytes = file.getBytes();
System.out.println("二进制数据"+bytes);
map.put("二进制",bytes);
String base = Base64.getEncoder().encodeToString(bytes);
System.out.println("base64"+base);
map.put("base64",base);
return map;
}
测试效果:
可以看到返回的json数据中,base64位和二进制数据流返回的一样。猜测,mvc返回json会把二进制数据自动转换为base64位
。数据库存二进制。BLOB,存储二进制大对象。
前端使用base64位数据显示图片。
<img src="https://img-blog.csdnimg.cn/2022010623403229269.jpg" />
<img src="data:image/(这是图片类型);base64,(这是数据)"/>
如有不解,请加java爱好群大家交流:852665736;群里都是热心好客的小伙伴,大家一同进步。
无偿免费分享源码以及技术和面试文档,更多优秀精致的源码技术栈分享请关注微信公众号:gh_817962068649