代码中已有注释 一个是转blob格式的图片 一个是转base64格式的图片
githubDemo => https://github.com/LanHai1/file-Preview-picture
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title></head><body> <label for="file"> <img src="sc.jpg" alt=""> </label> <input type="file" name="" id="file" style="display: none"> <!-- 渲染图片img --> <label for="file"> <img src="2.jpg" id="img" alt=""> </label></body></html>
<!-- 图片为blob编码格式 --> <script> window.onload = function() { // 获取input:file标签 let file = document.querySelector("input[type=file]"); // 注册改变事件 file.onchange = () => { // 获取里面上传的内容 -> 返回的是一个伪数组 let fileData = file.files[0]; // window.URL 有兼容问题 // 兼容代码 const windowURL = window.URL || window.webkitURL; // window.URL.createObjectURL 会根据传入的参数创建一个指向该参数对象的URL let imgSrc = windowURL.createObjectURL(fileData); // 设置imgsrc document.querySelector("#img").setAttribute("src", imgSrc) }; } </script>
<!-- 图片为base64编码格式 --> <script> let file = document.querySelector("input[type=file]"); file.onchange = () => { //获取input file的files文件数组; var fileData = file.files[0]; //创建用来读取此文件的对象 var reader = new FileReader(); //使用该对象读取file文件 reader.readAsDataURL(fileData); //读取文件成功后执行的方法函数 reader.onload = function(e) { //读取成功后返回的一个参数e,整个的一个进度事件 console.log(e); //选择所要显示图片的img,要赋值给img的src就是e中target下result里面 //的base64编码格式的地址 document.querySelector("#img").setAttribute("src", e.target.result) } } </script>
作者:蓝海00
链接:https://www.jianshu.com/p/551354f9bae5
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。