2013-08-27 13 views
43

W moim kodzie zezwalam użytkownikowi na przesyłanie obrazu. Teraz chcę pokazać ten wybrany obraz jako podgląd w tym samym oknie podręcznym. Jak mogę to zrobić za pomocą jQuery?Jak wyświetlić podgląd wybranego obrazu w typie wejściowym = "plik" w wyskakującym okienku przy użyciu jQuery?

Poniżej podano typ wejścia, którego używam w moim wyskakującym okienku.

HTML kod:

<input type="file" name="uploadNewImage"> 
+0

jakiego kodu po stronie serwera używasz do jego przesłania? musisz tego użyć. – chiliNUT

+0

wygląda na html5 FileReader –

+0

@Prasad, musisz użyć jakiejś wtyczki może być, odwiedź to http://plugins.jquery.com/ –

Odpowiedz

112

Demo

HTML:

<form id="form1" runat="server"> 
    <input type='file' id="imgInp" /> 
    <img id="blah" src="#" alt="your image" /> 
</form> 

jQuery

function readURL(input) { 
    if (input.files && input.files[0]) { 
     var reader = new FileReader(); 

     reader.onload = function (e) { 
      $('#blah').attr('src', e.target.result); 
     } 

     reader.readAsDataURL(input.files[0]); 
    } 
} 

$("#imgInp").change(function(){ 
    readURL(this); 
}); 

Reference

+0

Dzięki prabu, ale nie daje pełnej ścieżki obrazu, tylko zwraca obraz nazwa – Prasad

+0

której przeglądarki używasz –

+0

wszystkie chrome, mozilla, opera, safari z wyjątkiem IE – Prasad

23

Jeśli urządzenie korzysta z HTML5 następnie spróbuj następujący fragment kodu

<img id="uploadPreview" style="width: 100px; height: 100px;" /> 
<input id="uploadImage" type="file" name="myPhoto" onchange="PreviewImage();" /> 
<script type="text/javascript"> 

    function PreviewImage() { 
     var oFReader = new FileReader(); 
     oFReader.readAsDataURL(document.getElementById("uploadImage").files[0]); 

     oFReader.onload = function (oFREvent) { 
      document.getElementById("uploadPreview").src = oFREvent.target.result; 
     }; 
    }; 

</script> 
+0

ten działa mi bardzo dziękuję. –

3
<script> 
function img_pathUrl(input){ 
    $('#img_url')[0].src = (window.URL ? URL : webkitURL).createObjectURL(input.files[0]); 
} 
</script> 

<img src="" id="img_url" alt="your image"> 
<iput type="file" id="img_file" onChange="img_pathUrl(this);"> 
+2

Istnieje już kilka wysokiej jakości odpowiedzi na to pytanie, z których większość została opublikowana dwa lata temu, kiedy zadano pytanie. Chociaż może to być warte wysiłku, aby spróbować odpowiedzieć na proste pytania, takie jak ten, aby rozwinąć swoje umiejętności programistyczne, umieszczenie tej odpowiedzi w jej obecnym stanie nie dodaje nic do pytania. Jeśli jest jakaś powieść na temat twojej odpowiedzi, proszę, zrób kilka zdań, aby wyjaśnić, jak to jest inne i dlaczego to czyni lepiej. – MTCoster

0

Wystarczy sprawdzić swoje skrypty to działa dobrze:

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); 
#list img{ 
    width: auto; 
    height: 100px; 
    margin: 10px ; 
} 
Powiązane problemy