原生js读取本地图片并预览

	 <div class="input-inline goodsimg">
	          <input type="file" id="file_input" />
	          <img id="img" src="img/tp.png" alt="">
	 </div>
	.goodsimg {
	    display: flex;
	}
	#file_input {
	    opacity: 0;
	    width: 80px;
	    height: 80px;
	}
	#img {
	    width: 80px;
	    height: 80px;
	    margin-left: -80px;
	}
	var img = document.getElementById("img"); //获取显示图片的div元素
    var input = document.getElementById("file_input"); //获取选择图片的input元素
    //这边是判断本浏览器是否支持这个API。
    if (typeof FileReader === 'undefined') {
        aaa.innerHTML = "抱歉,你的浏览器不支持 FileReader";
        input.setAttribute('disabled', 'disabled');
    } else {
        input.addEventListener('change', readFile, false); //如果支持就监听改变事件,
                                                            一旦改变了就运行readFile函数。
    }

    function readFile() {
        var file = this.files[0]; //获取file对象
        //判断file的类型是不是图片类型。
        if (!/image\/\w+/.test(file.type)) {
            alert("文件必须为图片!");
            return false;
        }

        var reader = new FileReader(); //声明一个FileReader实例
        reader.readAsDataURL(file); //调用readAsDataURL方法来读取选中的图像文件
        //最后在onload事件中,获取到成功读取的文件内容,并以插入一个img节点的方式显示选中的图片
        reader.onload = function (e) {
            img.setAttribute('src',  this.result);
        }
    }

猜你喜欢

转载自blog.csdn.net/qq_38932474/article/details/102703390