<template> <div class="file-preview"> <h4>前端图片预览之 filereader 和 window.URL.createObjectURL</h4> <div class="item"> <p>1. filereader方式</p> <input type="file" name="imgFile" id="imgFile" @change="inputChange"> <div class="pvWrap"></div> </div> <div class="item"> <p>2. window.URL.createObjectURL</p> <input type="file" multiple name="imgFile2" id="imgFile2" @change="inputChange2"> <div class="pvWrap2"></div> </div> </div> </template> <script> export default { name: "FilePreview", data() { return {}; }, methods: { inputChange(e) { let ele = document.getElementById("imgFile").files[0]; let fr = new FileReader(); fr.onload = function(ele) { var pvImg = new Image(); pvImg.src = ele.target.result; pvImg.setAttribute("id", "previewImg"); pvImg.style.width = "100%"; pvImg.style.height = "100%"; let pvWrap = document.querySelector(".pvWrap"); pvWrap.innerHTML = ""; pvWrap.appendChild(pvImg); }; fr.readAsDataURL(ele); }, inputChange2() { let ele = document.getElementById("imgFile2").files; let createObjectURL = function(blob) { return window[window.webkitURL ? "webkitURL" : "URL"]["createObjectURL"](blob); }; for (let i = 0; i < ele.length; i++) { const element = ele[i]; let newImgData = createObjectURL(element); let pvImg = new Image(); pvImg.src = newImgData; pvImg.style.width = "100%"; pvImg.style.height = "100%"; let pvWrap2 = document.querySelector(".pvWrap2"); pvWrap2.appendChild(pvImg); } } } }; </script> <style scoped> .pvWrap, .pvWrap2 { width: 400px; height: 200px; } </style>