獲取上傳圖片路徑方法(新舊方法)

舊方法html

//獲取上傳圖片路徑1
function fileComment(obj) {
    /*獲取input=file圖片路徑*/
    var objUrl = getObjectURL(obj.files[0]);
    if (objUrl) {
        return objUrl;
    }
}
//獲取上傳圖片路徑2
function 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:web

自從有了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>
相關文章
相關標籤/搜索