图片预览相关

两种方法

1、

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>file上传图片</title>
    <style type="text/css">
        .container{
            min-height: 500px;
            border: 1px solid #f5f5f5;
            background-color: #ccc;
        }
        .img-holder{
             300px;
            height: 300px;
            border:1px solid #f00;
        }
        .img-holder img{
             100%;
            height: 100%;
        }
    </style>
</head>
<body>
<h2>预览图片</h2>
<div class="container">
    <input class="img-selector" type="file" >
    <div id="upload_text"></div>
    <div id="progress_text"></div>
    <div id="img-holder"></div>
</div>


<script type="text/javascript">
    let img_input = document.getElementsByClassName('img-selector')[0];
    img_input.addEventListener('change',function(){
        let imgHolder = document.getElementById('img-holder');
        let uploadText = document.getElementById('upload_text');
        let progressText = document.getElementById('progress_text');
        let files = this.files;
        let reader = new FileReader();
        let type = 'default';
        if(/image/g.test(files[0].type)){
            reader.readAsDataURL(files[0]);   //将上传的资源生成链接 保存在result中
            type = 'image'
        }else{
            reader.readAsText(files[0]);      //将上传的资源生text类型数据
            type = 'text'
        }

        reader.onerror = function(){
            uploadText.innerHTML = '您上传的图片出错,错误码是'+reader.error.code;
        }
        reader.onprogress = function(event){
            if(event.lengthComputable){
                progressText.innerHTML = event.loaded+'/'+event.total;
            }
        }
        reader.onload = function(){
            let html = '';
            switch(type){
                case 'image':
                    html = "<img src='"+reader.result+"' />";
                    break;
                case 'text':
                    html = reader.result;
                    break;
            }
            imgHolder.innerHTML = html
        }
    },false)
</script>
</body>
<ml>

2、

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>file上传图片</title>
    <style type="text/css">
        .container{
            min-height: 500px;
            border: 1px solid #f5f5f5;
            background-color: #ccc;
        }
        #img-holder{
             300px;
            height: 300px;
            border:1px solid #f00;
        }
        #img-holder img{
             100%;
            height: 100%;
        }
    </style>
</head>
<body>
<h2>预览图片</h2>
<div class="container">
    <input class="img-selector" type="file" >
    <div id="upload_text"></div>
    <div id="progress_text"></div>
    <div id="img-holder"></div>
</div>


<script type="text/javascript">
    let img_input = document.getElementsByClassName('img-selector')[0];
    img_input.addEventListener('change',function(){
        let imgHolder = document.getElementById('img-holder');
        let uploadText = document.getElementById('upload_text');
        let progressText = document.getElementById('progress_text');
        let files = this.files;
        let reader = new FileReader();
        let url = createObjectURL(files[0]);

        if(url){
            if(/image/g.test(files[0].type)){
                imgHolder.innerHTML = "<img src='"+url+"'>"
            }else{
                imgHolder.innerHTML = "不是图片"
            }
        }
    },false)

    function createObjectURL(blob){
        if(window.URL){
            return window.URL.createObjectURL(blob)
        }else if(window.webkitURl){
            return window.webkitURl.createObjectURL(blon)
        }else{
            return null
        }
    }
</script>
</body>
<ml>
原文地址:https://www.cnblogs.com/white0710/p/7550369.html