2016-10-01 12 views

答えて

0

非常に簡単です。あなたは実際には、応答を待つ必要はありません。あなたは、FileReaderのを使用することができます。 https://developer.mozilla.org/ru/docs/Web/API/FileReader

考え方は次のとおりです。

  1. ハンドル入力[タイプ= 'ファイル']はbase64形式でFileReaderの

  2. 表示文字列を作成します

  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); 

ことです。

もう1つの方法は、AJAXレスポンスを待ってイメージパスをimg-elementに追加することですが、ユーザーが既にドライブにファイルをダウンロードしている間にファイルをダウンロードさせてしまうため、あまり良くありません。

+0

Filereader.Iは画像を保存するためにFileSystemStorageを使用しています。 –

+0

これはクライアント側で、ジャンゴ側ではありません。このコードは、アップロードされる前の画像を表示します。 FileReaderは、ブラウザに含まれるWebAPIの一部です。 img-elementのsrc属性に表示できるbase64文字列として画像を取得する簡単な方法を提供します。 – vadimka

関連する問題