二进制转base64,图片的处理

背景

上传文件服务器固然好用,但是有的时候没有文件服务器或者特定情形下的文件不使用文件服务器,而是直接存储文件内容。最常见的就是头像、验证码、压缩图片的处理。直接存储文件的内容的时候数据库中存的是base64编码的内容。(至于为什么,因为前端想要显示图片需要获得base64格式的内容)

1base64是什么

base64是什么

3应用:头像,验证码的处理,压缩图片

注意:使用from-data填写参数
在这里插入图片描述

延申
hutool工具中关于图片的处理,如图片加水印,图片剪裁

2二进制转base64

		//核心代码
        BASE64Encoder encoder = new BASE64Encoder();
        return d encoder.encode(data);
        
  //            //处理图片
//            MultipartFile file = simuSoftware.getFile();
//            byte[] data = file.getBytes();
//            //二进制流转Base64字符串 存储到数据库
//            BASE64Encoder encoder = new BASE64Encoder();
//            String simuSoftwarePicture = encoder.encode(data);
/**这里思考:为什么这样是不全的,因为是图片,所以需要让前端知道这是图片才能在读取base64内容的时候解析成图片。
 *必须要contentType 标识。
 *在代码中体现为 "data:" + contentType + ";base64," + base64Encoder.encode(imageBytes);
 * */

//具体代码实现
MultipartHttpServletRequest mulreq = (MultipartHttpServletRequest) request;
MultipartFile file = mulreq.getFile("file");
String fileName = file.getOriginalFilename();
String contentType = file.getContentType();
byte[] imageBytes = null;
String base64EncoderImg="";
try {
    imageBytes = file.getBytes();
    BASE64Encoder base64Encoder =new BASE64Encoder();

    base64EncoderImg = "data:" + contentType + ";base64," + base64Encoder.encode(imageBytes);
    //如果解析有错误,需要加上下面这一行
   // base64EncoderImg = base64EncoderImg.replaceAll("[\\s*\t\n\r]", "");
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耳东哇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值