舊方法
//獲取上傳圖片路徑1function fileComment(obj) { /*獲取input=file圖片路徑*/ var objUrl = getObjectURL(obj.files[0]); if (objUrl) { return objUrl; } }//獲取上傳圖片路徑2function getObjectURL(file) { var url = null; if (window.createObjectURL != undefined) { // basic url = window.createObjectURL(file); } else if (window.URL != undefined) { // mozilla(firefox) url = window.URL.createObjectURL(file); } else if (window.webkitURL != undefined) { // webkit or chrome url = window.webkitURL.createObjectURL(file); } return url; }
新:FileReader:
自從有了HTML5的FileReader對象以後,預覽圖片變得簡單多了,不再需要後臺的配合,並且JS操作本地文件已經成爲了可能。這種方法的思路是:通過FileReader.prototype.readAsDataURL()方法把圖片文件轉成base64編碼,然後把base64編碼替換到預覽圖片的src屬性即可。如果想要了解更多關於FileReader對象的,可以看一下這裏:FileReader https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader
下面是使用FileReader進行圖片預覽的簡單demo:
<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body><input type="file"><br><img src="" height="200" alt="Image preview area..." title="preview-img"><script> var fileInput = document.querySelector('input[type=file]'), previewImg = document.querySelector('img'); fileInput.addEventListener('change', function () { var file = this.files[0]; var reader = new FileReader(); // 監聽reader對象的的onload事件,當圖片加載完成時,把base64編碼賦值給預覽圖片 reader.addEventListener("load", function () { previewImg.src = reader.result; }, false); // 調用reader.readAsDataURL()方法,把圖片轉成base64 reader.readAsDataURL(file); }, false);</script></body></html>