2012-01-17 23 views
8

Ben html5 ÇOK basit bir görüntü yükleyici yapmaya çalışıyorum.html5 Resim yükleme

<input type="file" multiple=""/> 

Tüm yapmak istediğim, PhP veya herhangi bir şey kullanmadan karşıya yüklenenleri göstermektir. Buna benzer kod kullanabilir miyim?

<img src="WHATEVER WAS UPLOADED"/> 

Teşekkürler!

+0

Olası kopyası: http://stackoverflow.com/questions/5256620/can-i-preview-the-image-file-who-uploaded-by-user-in-the-browser –

cevap

0

Bunu, HTML5 Dosya Api ile arşivleyebilirsiniz. Size almalısınız

takiben öğretici başladı:

+0

ancak yerel dosyaları öğretici IE için çalışmayan filereader'ı kullanır. Geri kalan tarayıcılar için çalışır [check here] (http://caniuse.com/filereader) –

4

Reading local files in JavaScript i

http://www.html5rocks.com/en/tutorials/file/dndfiles/ 

oldukça yararlı

bulundu.

<style> 
    .thumb { 
    height: 75px; 
    border: 1px solid #000; 
    margin: 10px 5px 0 0; 
    } 
</style> 

<input type="file" id="files" name="files[]" multiple /> 
<output id="list"></output> 

<script> 
    function handleFileSelect(evt) { 
    var files = evt.target.files; // FileList object 

    // Loop through the FileList and render image files as thumbnails. 
    for (var i = 0, f; f = files[i]; i++) { 

    // Only process image files. 
    if (!f.type.match('image.*')) { 
     continue; 
    } 

    var reader = new FileReader(); 

    // Closure to capture the file information. 
    reader.onload = (function(theFile) { 
     return function(e) { 
      // Render thumbnail. 
      var span = document.createElement('span'); 
      span.innerHTML = ['<img class="thumb" src="', e.target.result, 
         '" title="', escape(theFile.name), '"/>'].join(''); 
      document.getElementById('list').insertBefore(span, null); 
    }; 
     })(f); 

     // Read in the image file as a data URL. 
     reader.readAsDataURL(f); 
    } 
    } 

    document.getElementById('files').addEventListener('change', handleFileSelect, false); 

</script> 

veya bloklarýnýn:

bazı sunucusuna resim itmek istemiyorum (i Sorunuzun bu varsayalım), sadece lokal olarak görüntüyü güncelleyebilirsiniz.

+0

Bunu tek bir görüntüyü (örneğin birden fazla resim değil) kabul etmek ve döngü işlemini kaldırmak için değiştirebilir misiniz? 'files', çeşitli yerlerde kullanılır ve' files' veya id 'files' veya' files' name değişkenlerine atıfta bulunup bulunmadığından emin değilim, bu yüzden bu değişikliği yapamadım. – user1063287

+0

Bu, tek bir görüntü yükleme ve önizleme için çalışıyor gibi görünüyor ve yukarıdaki koddan dayanmaktadır http://jsfiddle.net/rwone/4n8HW/ – user1063287

+0

Daha fazla açıklama ve daha fazla kod bu bağlantıdan bulunabilir: https: // www. html5rocks.com/en/tutorials/file/dndfiles/ – domdambrogia

İlgili konular