2016-03-05 6 views
6

बटन लेकिन प्रदर्शन फ़ाइल "फ़ाइल चुनें" मैं एक छवि अपलोड करने के लिए कस्टम बटन बनाने के लिए करना चाहते हैं। मैं नीचे डेमो के साथ इस परिणाम प्राप्त करने में सक्षम हूँ:सीएसएस छिपाने के बाद चयन

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

लेकिन कैसे मैं के बाद चयनित फ़ाइल नाम प्रदर्शित कर सकते हैं? या यदि संभव हो तो एक छवि का एक थंबनेल भी हो सकता है? जैसे ही मैं खुले पॉप की खिड़की से एक फाइल चुनता हूं, मैं इसे चुनने के बाद पेज पर 'फ़ाइल नाम' प्रदर्शित करना चाहता हूं।

जावास्क्रिप्ट - jQuery पूरी तरह से एक विकल्प है यहां अगर कोई उस क्षेत्र में मदद कर सकते हैं।

एचटीएमएल

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

सीएसएस

.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

जावास्क्रिप्ट। क्या यह एक विकल्प है? –

+0

हां, बहुत कुछ! लिंक का अनुसरण –

+1

प्रयास करें: http://stackoverflow.com/questions/4459379/preview-an-image-before-it-is-uploaded http://stackoverflow.com/questions/12368910/html-display-image-after- चयन-फ़ाइल नाम –

उत्तर

6

जावास्क्रिप्ट के अलावा के साथ, हम बस इनपुट पर change घटना के लिए देखते हैं, और पृष्ठ पर मौजूद नाम डाल सकते हैं। कृपया ध्यान दें ये नाबालिग एचटीएमएल परिवर्तन:

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

इस jQuery के साथ:

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

यह स्क्रिप्ट जैसे ही अपलोड की गई के रूप में छवि दिखाता है:

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

धन्यवाद डब्ल्यूसीपीसी, मेरे पास एक त्वरित सवाल है। मैं इस छवि को एक फॉर्म के माध्यम से कैसे भेज सकता हूं जिसे मैंने स्थापित किया है? जैसे कि क्या जावास्क्रिप्ट इस फ़ाइल को मेरे फॉर्म डेटा में जोड़ सकता है और फिर जब मैं फॉर्म जमा करता हूं तो क्या मैं इस छवि को अपने वर्तमान रूप के साथ डेटा के रूप में भेज सकता हूं? '

' और फिर अपने PHP में (मैं आप PHP का उपयोग मान): –

+0

आप इस के लिए js जरूरत नहीं बस इसे चारों ओर प्रपत्र टैग जोड़ने 'वर your_file = $ _POST ['control_name'] 'उदाहरण के लिए' var your_file = $ _POST ['files'] 'भले ही आप पहले से ही छवि दिखाते हैं, फिर भी यह आपके फ़ाइल अपलोड नियंत्रण में अभी भी चुना गया है ... – WcPc

3

बस फ़ाइल तत्व के परिवर्तन घटना का दोहन:

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

इस बेला में दिखाया गया: https://jsfiddle.net/pbg44bqu/12/

संबंधित मुद्दे