2013-06-16 14 views
6

Ben müşteriye o seçilmiş olan bir resim göstermek çalışıyorum:Seçilen görüntü sunucuya veri gönderilmeden nasıl görüntülenir?

<input type="file" onchange="showImage(this)"/> 

Ama here teslim olarak ben, girişin değerini okuyamaz. Resmi görüntülemek mümkün mü?

onchange'da formu sunucuya gönderebilir ve sunucu verileri geri gönderebilir, ancak gerçekten gerekli mi? İstemci ping-pong olmadan verileri sunucuya gösteremez mi? Bu bir güvenlik sorunu mu?

Bunun için FileReader web API nesnesini kullanabilirsiniz
+0

gönderimde Bir Bu şekilde biçimlendir, sonra evet - sunucuya ping-pong kaçınılmazdır. Resmi yerel dosya sisteminden HTML5 Dosya API'si ile yükleyebilir ve görüntüleyebilirsiniz. –

cevap

13

, bu pasajı bkz:

HTML

<input id="src" type="file"/> // input you want to read from (src) 
<img id="target"/> // image you want to display it (target) 

javascript

function showImage(src,target) { 
    var fr=new FileReader(); 
    // when image is loaded, set the src of the image where you want to display it 
    fr.onload = function(e) { target.src = this.result; }; 
    src.addEventListener("change",function() { 
    // fill fr with image data  
    fr.readAsDataURL(src.files[0]); 
    }); 
} 

var src = document.getElementById("src"); 
var target = document.getElementById("target"); 
showImage(src,target); 
+2

Güzel. Tüm tarayıcılarda çalışır mı? – revolver

+0

Bağlantıya bakın. Tüm büyük tarayıcılarda ve IE10'dan beri çalışmalıdır. –

+0

'var input = kodunuzda bu hiçbir şey yapmaz. 'Input' değişkeni asla kullanılmaz. –