好几个月前做毕设,有个部分涉及到把用户上传的图片存储到数据库中,我就想把图片转为base64编码,需要显示的时候再反编码显示出来。具体实现的时候也折磨我一两天才实现。记录一下。
图片转化为base64编码
设置<input>标签的type=file
let reader = new FildReader()
reader.onload = (e) => {
e.target.result.split(',').pop()
// 拿到base64编码 //
e.target.result的格式为'data:application/octet-stream;base64,需要的base64 编码'
}
let imgFile = document.querySelector('input')
imgFile.addEventListener('change', function(e){
reader.readAsDataURL(e.target.files[0])
})
base64编码转化为图片
从数据库获取到图片的base64编码,需要将base64转化为blob对象,借助base64toBlob(base64编码)方法,获得blob对象。
将blob对象显示在img标签中,借助URL.createObjectURL(blob对象)即可
URL.createObjectURL(base64toBlob(base64编码))