<input file 选择图片立马回显,而不是通过上传至服务器端,拿到Url后再展示

        <input id="input" type="file" multiple accept="image/*">
        <div id="container" class="img-container"></div>

第一种FileReader 拿到base64

            var aInput = document.getElementById("input"),
                imgContainer = document.getElementById("container");
            aInput.addEventListener('change', function() {
                for (var i = 0; i < this.files.length; i++) {
                    var img = new Image(),
                        reader = new FileReader(),
                        url = reader.readAsDataURL(this.files[i]);
                    imgContainer.appendChild(img);

                    reader.onload = function(e) {
                        img.src = e.target.result;//base64
                    }
                }
            })

第二种获取本地路径,不需要转base64

           var img = new Image();
           var aInput = document.getElementById("input");
           aInput.addEventListener('change', function(e) {
               console.log(e);
               const file = e.srcElement.files[0]
               const imgURL = window.URL.createObjectURL(file) // imgURL就是你的图片的本地路径,两部就能解决问题
               console.log(imgURL);
               img.src = imgURL;
               
           })
           // img.src = './assets/logo.png';
           document.getElementById('container').appendChild(img)

第三种canvas

            var img = new Image(),
                canvas;
            img.onload = function() {
                canvas = document.createElement('canvas');
                canvas.width = img.width;
                canvas.height = img.height;
                var context = canvas.getContext('2d');
                context.drawImage(img, 0, 0);
                console.log(canvas.toDataURL());//base64
                document.body.appendChild(canvas);
                return canvas;
            }
            img.src = './assets/logo.png';//写死的相对路径,但是选择图片路径肯定不是固定的,以下是获取图片的本地路径


            var aInput = document.getElementById("input");
            aInput.addEventListener('change', function(e) {
                console.log(e);
                const file = e.srcElement.files[0]
                const imgURL = window.URL.createObjectURL(file) // imgURL就是你的图片的本地路径,两部就能解决问题
                console.log(imgURL);
                img.src = imgURL;

            })
            //drawImage即将img画到画布区域内,接收三个参数,第一个是img对象,第二个是绘制的起始位置水平,第三个是绘制的垂直位置。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用...
    雷波_viho阅读 4,253评论 0 1
  • 前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用...
    AlphaEarth阅读 3,247评论 0 0
  • 在浏览器中操作文件,多数情况下用到的是 File 对象,从 元素获取,进而继续操作(例如将选择的图片展示在页面...
    最x程序猿阅读 5,473评论 0 1
  • JavaScript,通常缩写为 JS,是一种解释执行的编程语言。它是现在最流行的脚本语言之一。 JavaScri...
    神齐阅读 10,693评论 1 32
  • 主要源于廖雪峰老师的JavaScript教程 浏览器 1. 简介 注意IE浏览器,别的支持的都挺好。IE 6~11...
    ynchai阅读 3,392评论 0 2

友情链接更多精彩内容