知识预备:
一、 URL.createObjectURL() 静态方法会建立一个 DOMString
,它的 URL 表示参数中的对象。这个 URL 的生命周期和建立它的窗口中的 document
绑定。
二、在每次调用 createObjectURL()
方法时,都会建立一个新的 URL 对象,即便你已经用相同的对象做为参数建立过。当再也不须要这些 URL 对象时,每一个对象必须经过调用 URL.revokeObjectURL()
方法来释放。浏览器会在文档退出的时候自动释放它们,可是为了得到最佳性能和内存使用情况,你应该在安全的时机主动释放掉它们。
html
在线演示web
1、单张图片预览浏览器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图片预览</title> </head> <body> <input type="file" id="file" multiple> <div id="preview">图片预览</div> <script> var preview = document.querySelector('#preview'); var oFile = document.querySelector('#file'); oFile.onchange = function(){ var url = window.URL.createObjectURL(oFile.files[0]); // 建立预览图片 var img = new Image(); img.src = url; img.style.width = "80px"; img.style.height = "80px"; // 插入预览图片 preview.appendChild(img); } </script> </body> </html>
2、多张图片预览安全
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>图片预览</title> </head> <body> <input type="file" id="file" multiple> <div id="preview">图片预览</div> <script> var preview = document.querySelector('#preview'); var oFile = document.querySelector('#file'); oFile.onchange = function(){ for(var i=0;i<oFile.files.length;i++){ var url = window.URL.createObjectURL(oFile.files[i]); // 建立预览图片 var img = new Image(); img.src = url; img.style.width = "80px"; img.style.height = "80px"; // 插入预览图片 preview.appendChild(img); } } </script> </body> </html>
3、浏览器支持服务器