经过<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