js实现图片上传预览功能,使用base64编码来实现

Posted seeway

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js实现图片上传预览功能,使用base64编码来实现相关的知识,希望对你有一定的参考价值。

实现图片上传的方法有很多,这里我们介绍比较简单的一种,使用base64对图片信息进行编码,然后直接将图片的base64信息存到数据库。

但是对于系统中需要上传的图片较多时并不建议采用这种方式,我们一般会选择存图片路径的方式,这样有助于减小数据库压力,base64

编码后的图片信息是一个很长的字符串,一般我们使用longText类型来将其存入数据库。

html代码如下:

<div class="col-sm-6">
  <img id="headPortraitImgShow" src="img/defaultHeadPoint.jpg" alt="" width="160px" height="180px" />
  <input type="file" id="headPortraitUpload" style="margin-top:10px;">
</div>

javascript代码如下:

$("#headPortraitUpload").on("change",headPortraitListener);

 /*定义全局变量存贮图片信息*/
 var base64head="";

/*头像上传监听*/
function headPortraitListener(e) {
    var img = document.getElementById(\'headPortraitImgShow\');
      if(window.FileReader) {
          var file  = e.target.files[0];
          var reader = new FileReader();
          if (file && file.type.match(\'image.*\')) {
              reader.readAsDataURL(file);
          } else {
              img.css(\'display\', \'none\');
              img.attr(\'src\', \'\');
          }
          reader.onloadend = function (e) {
          img.setAttribute(\'src\', reader.result);
          base64head = reader.result;
        }
      }
}

效果预览:默认图片-----》效果图

      

最后,将base64head提交到后台存入数据库即可,下次从数据库取出直接将该base64信息放到img标签的src里面图片就回显出来了

 

以上是关于js实现图片上传预览功能,使用base64编码来实现的主要内容,如果未能解决你的问题,请参考以下文章

base64上传图片保存到数据库

上传base64编码文件

js实现图片预览压缩上传

Vue结合element ui 实现图片上传可预览,可删除,以base64字符串上传到服务器

PHP + JQuery 实现多图上传并预览

JavaCV音视频开发宝典:JavaCV读取Base64编码图片并解析预览图片