2016-10-01 40 views

回答

0

這很簡單。實際上,你不必等待迴應。您可以使用的FileReader: https://developer.mozilla.org/ru/docs/Web/API/FileReader

的理念是:

  1. 處理輸入[類型= '文件']改變

  2. 創建的FileReader以base64格式

  3. 顯示字符串in img [src =]

    <input type="file" accept="image/jpeg,image/png,image/gif" id="img_input"> 
    

函數定義:

function handleFile(e) { 
    var self = this; 
    var reader = new FileReader(); 
    var file = e.target.files[0]; 

    reader.onload = function(upload) { 
     var currentImageData = upload.target.result; 
     var imgElem = document.createElement('img'); 
     imgElem.setAttribute('src', currentImageData); 
     document.body.appendChild(imgElem); 
    } 

    reader.readAsDataURL(file); 
} 

document.querySelector('#img_input').addEventListener('change', handleFile); 

這就是它。

另一種方式是等待AJAX​​響應並將圖像路徑追加到img-element,但它不是很好,因爲它使得用戶可以下載文件,而他已經將文件放在驅動器上。

+0

您能詳細說明什麼是Filereader.I使用FileSystemStorage來保存圖像。 –

+0

它在客戶端,而不是Django端。此代碼在上傳之前顯示圖像。 FileReader是瀏覽器中包含的WebAPI的一部分。它提供了以base64-string的形式獲取圖像的簡單方法,它可以在img-element的src-attribute中顯示。 – vadimka