JS实现上传头像并实时预览

xiaoqihv8个月前 (04-08)前端设计163

说起各大网站的用户中心功能,其中就少不了用户头像上传这个小小的功能,如果我们依托框架来编写的的话,相信非常的容易,但如果我们自己来单纯的使用JS来实现头像上传,并在选择本地头像的时候,实现预览我想也是很容易的。

用html的file标签就能实现图片上传前预览,原理就是通过file标签和js的FileReader接口,把选择的图片文件调用readAsDataURL方法,把图片数据转成base64字符串形式显示在页面上。

HTML实现头像上传并预览

以下头像上传并实时预览代码来自网络,并做了相应的调试,可正常运行。

HTML代码

<input type="file" name="pclogo" id="xdaTanFileImg" onchange="xmTanUploadImg(this)" accept="image/*"><img src="默认头像地址" class="img-circle img-thumbnail img-responsive" id="avarimgs">

JS代码

<script type="text/javascript">            if (typeof FileReader == 'undefined') {    document.getElementById("xmTanDiv").InnerHTML = "<h1>当前浏览器不支持FileReader接口</h1>";   document.getElementById("xdaTanFileImg").setAttribute("disabled", "disabled");        }//选择图片,马上预览 function xmTanUploadImg(obj) {  var file = obj.files[0];                 console.log(obj);console.log(file);  console.log("file.size = " + file.size);  var reader = new FileReader();  reader.onloadstart = function (e) {     console.log("开始读取....");  }    reader.onprogress = function (e) {         console.log("正在读取中....");  }  reader.onabort = function (e) {     console.log("中断读取....");  }  reader.onerror = function (e) {      console.log("读取异常....");  }  reader.onload = function (e) {      console.log("成功读取....");  var img = document.getElementById("avarimgs");      img.src = e.target.result;   //或者 img.src = this.result;  //e.target == this  }      reader.readAsDataURL(file)  }</script>

以上代码,来自网络,并且本地测试通过。如果你有更好用的代码,可以下面留言哦!

相关文章

HTML DOM nodeType 属性

HTML DOM nodeType 属性

JavaScript中给出这样一个操作HTML或XML的一个属性:nodeType,px 它可以返回以数字值返回指定节点的节点类型!如果节点是元素节点,则 nodeType 属性将返回 1。如果节点是...

javascript中的addEventListener()方法

javascript中的addEventListener()方法

我们操作HTML DOM对象的时候,可以利addEventListener()方法为某个被选中的DOM对象添加一个事件,用来操作这个被选中的对象。下面就记录一下,如果利javascript的addEv...

jQuery ajax()使用serialize()提交form数据

jQuery ajax()使用serialize()提交form数据

这几天一直在适配用户中心插件,基本的功能也差不多了,时间不长就会上线用户中心,当然适配的过程中也遇到不少的问题,今天记录一下。jQuery的serialize()方法通过序列化表单值,创建URL编码文...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。