2016-03-05 13 views
6

Görüntü yükleme için özel butonlar yapmak istiyorum.css hide "Dosya Seç" butonu, ancak dosyayı seçtikten sonra görüntüleyiniz

https://jsfiddle.net/algometrix/fgrbyo4z/

Ama NASIL sonra seçilen dosya adını gösterebilir: Aşağıda demo ile bu sonucu almak mümkün? Ya da mümkünse bir görüntünün küçük resmi bile olabilir mi? Açılan pencereden bir dosya seçtikten sonra, onu seçtikten sonra sayfada 'dosya adını' görüntülemek istiyorum.

Javascript - jQuery bu alanda herhangi bir kişi yardımcı olabilirse tamamen bir seçenektir.

HTML javascript eklenmesiyle

<div> 
    <div style="display:block;text-align:center;margin-top:20%;"> 
    <label for="files"> <span class="btn">Select Image</span></label> 
    <input style="visibility: hidden; position: absolute;" id="files" class="form-control" type="file" name="files"> 

    </div> 

</div> 

CSS

.btn { 
    font-family: Arial; 
    color: #ffffff; 
    font-size: 20px; 
    background: #3f88b8; 
    padding: 10px 20px 10px 20px; 
    text-decoration: none; 
} 

.btn:hover { 
    background: #3cb0fd; 
    background-image: -webkit-linear-gradient(top, #3cb0fd, #3498db); 
    background-image: -moz-linear-gradient(top, #3cb0fd, #3498db); 
    background-image: -ms-linear-gradient(top, #3cb0fd, #3498db); 
    background-image: -o-linear-gradient(top, #3cb0fd, #3498db); 
    background-image: linear-gradient(to bottom, #3cb0fd, #3498db); 
    text-decoration: none; 
} 
+0

Javascript. Bu bir seçenek mi? –

+0

Evet, çok fazla! –

+1

Aşağıdaki bağlantıları deneyin: http://stackoverflow.com/questions/4459379/preview-an-image-before-it-is-uploaded http://stackoverflow.com/questions/12368910/html-display-image-after- seçme-dosya adı –

cevap

6

, biz sadece girişi change olayı izlemek ve sayfadaki adı koyabilirsiniz. Bu küçük HTML değişiklikleri unutmayın:

<div class="file-upload"> 
    <label for="upload-1" class="btn">Upload</label> 
    <input type="file" id="upload-1"> 
    <p class="file-name">Please select a file.</p> 
</div> 

bu jQuery ile:

jQuery(function($) { 
    $('input[type="file"]').change(function() { 
    if ($(this).val()) { 
     var filename = $(this).val(); 
     $(this).closest('.file-upload').find('.file-name').html(filename); 
    } 
    }); 
}); 

Working Fiddle

1

Bu komut dosyası en kısa sürede yüklenen olarak resim görülmektedir:

function readURL(input) { 

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

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

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

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

Source

Updated Fiddle

+0

Teşekkürler WcPc, bir tane hızlı sorum var. Bu resmi, kurduğum bir form aracılığıyla nasıl gönderebilirim? Javascript'i bu dosyaya form verilere ekleyebilir miyim ve formu gönderdiğimde bu resmi mevcut formumla veri olarak gönderebilir miyim? –

+0

Bunun için js gerekmez, sadece form etiketlerini ekleyiniz: '

' ve sonra PHP’de (PHP’yi kullandığınızı varsayalım): 'var your_file = $ _POST ['control_name'] 'örneğin 'var your_file = $ _POST [' files ']' Görüntüyü zaten gösterseniz bile, dosya yükü kontrolünüzde hala seçili ... – WcPc

3

Sadece dosya elemanının değişim olayı içine dokunun:

var file = document.getElementById("files"); 
file.addEventListener("change", function(){ alert(this.value); }); 

bu keman göstergeler: https://jsfiddle.net/pbg44bqu/12/

İlgili konular