为了账号安全,请及时绑定邮箱和手机立即绑定

vue里面实现这种头像上传的功能,求demo或者比较好的方法

vue里面实现这种头像上传的功能,求demo或者比较好的方法

斯蒂芬大帝 2018-12-19 18:17:09
vue里面实现这种头像上传的功能,求demo或者比较好的方法
查看完整描述

1 回答

?
Helenr

TA贡献1780条经验 获得超4个赞

你可以使用element-ui中的上传方法


这是原生的方法


<!DOCTYPE html> 

<html> 

<head>


<meta charset="UTF-8">  

<title></title>  

<style>  

    img{max-width: 100%; height: 100px;margin: 10px 20px;}  

    .img_list .img-div{width: 100px;height: 200px; float: left;  overflow: hidden;text-align: center;  }  

    .upload{position: relative;}  

    .upload input{opacity: 0;position: absolute;top: 0;left: 10px;height: 100px;width: 100px;}  

    .upload .upload_box{width: 100px;height: 100px;background-color: pink;color: white;}  

    .img-div p{color: #28a4b0;margin: 0;}  

</style>  

</head> 

<body> 

<div class="upload">


<input class="file_input" type="file" multiple id="avc"/>  

<div class="upload_box">  

    点我上传图片哦  

</div>  

</div>


<div class="img_list">


</div> 

<script>


var file_input=document.getElementsByClassName("file_input")[0];

// 触发事件用的是change,因为files是数组,需要添加下标


file_input.addEventListener("change",function(){  

    var obj=this;  

    var obj_name=this.files[0].name;  

    var img_length=obj.files.length;  

    for(var i=0;i<img_length;i++)  

    {  

        if(!(/image\/\w+/).test(obj.files[i].type))  

        {  

            alert("上传的图片格式错误,请上传图片");  

            return false;  

        }  

        var reader = new FileReader();  

        reader.error=function(e){  

            alert("读取异常")  

        }  

        reader.onload = function(e){  

// div_html是包括图片和图片名称的容器


            var img_html='<img src="'+e.target.result+'"/>';  

            var div_html=document.createElement("div");  

            var p_html=document.createElement("p");  

            if(document.getElementsByClassName("img_list")[0].children.length<5)  

            {  

                div_html.innerHTML=img_html;  

                div_html.appendChild(p_html);  

                p_html.innerHTML=obj_name;  

                div_html.className="img-div";  

                document.getElementsByClassName("img_list")[0].appendChild(div_html);  

            }else{  

                alert("最多上传5张图片")  

            }  

        };  

        reader.onloadstart=function(){  

            console.log("开始读取"+obj_name);  

        }  

        reader.onprogress=function(e){  

            if(e.lengthComputable){  

                console.log("正在读取文件")  

            }  

        };  

        reader.readAsDataURL(obj.files[i]);  

    }  


})  

</script> 

</body> 

</html>


查看完整回答
反对 回复 2019-01-21
  • 1 回答
  • 0 关注
  • 2347 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信