經過<input id="input" type="file" onchange="changeFile()">
中的change事件 拿到的file不能直接在本地預覽選擇的圖片或者視頻,能夠經過如下兩種方式預覽本地圖片,不用上傳到服務器就能夠本地預覽。html
這種方式生成的文件地址能夠預覽圖片和視頻瀏覽器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input id="inputFile" onchange="change();" type="file"> <img id="img" src=""> <script> function change() { console.log(111); var uploadUrl = getFileUrl('inputFile'); var img =document.getElementById('img'); img.src = uploadUrl; } function getFileUrl(sourceId) { var url; if (navigator.userAgent.indexOf("MSIE") >= 1) { // IE url = document.getElementById(sourceId).value; } else if (navigator.userAgent.indexOf("Firefox") > 0) { // Firefox url = window.URL.createObjectURL(document.getElementById(sourceId).files.item(0)); } else if (navigator.userAgent.indexOf("Chrome") > 0) { // Chrome url = window.URL.createObjectURL(document.getElementById(sourceId).files.item(0)); } return url; } </script> </body> </html>
本地預覽的視頻地址最終結果 blob格式服務器
var reader = new FileReader(); reader.onload =function(e){ aImg.src = e.target.result; } reader.readAsDataURL(file); // file是指選擇的文件 files[0]
本地預覽的視頻地址最終結果 base64格式性能
按照前輩們的說法,creatObjectURL能夠有更好的性能,或許是瀏覽器自帶接口的緣由, 能夠處理的更快。url