2012-07-03 20 views
7

के साथ टेक्स्टबॉक्स में टेक्स्ट फ़ाइल लोड करें, मैं उपयोगकर्ताओं को अपने कंप्यूटर से फ़ाइल खींचने और छोड़ने (या चुनने) की अनुमति देना चाहता हूं और इसे जावास्क्रिप्ट के साथ टेक्स्टबॉक्स में लोड करना चाहता हूं।एचटीएमएल 5 खींचें और ड्रॉप करें: जावास्क्रिप्ट

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

+0

शायद 'FileReader() के साथ' –

+0

आप की तरह [इस] (http कुछ तो मतलब है सर्वर पर फ़ाइल अपलोड बिना यह संभव नहीं है: // html5demos.com/file-api) पाठ फ़ाइलों के लिए tweaked? –

+0

टेक्स्ट फ़ाइलों के लिए हाँ। –

उत्तर

16

मैं सब कुछ आप एचटीएमएल 5 के लिए चाहते हो जाएगा में शामिल है लगता है Github पर remy/html5demos

उदाहरण के तौर पर, मैंने टेक्स्ट फ़ाइलों को स्वीकार करने और उन्हें ब्राउज़र में प्रदर्शित करने के लिए http://html5demos.com/file-api संशोधित किया।

jsfiddle देखें।

संपादित
प्रासंगिक स्क्रिप्ट:

// modified from http://html5demos.com/file-api 
var holder = document.getElementById('holder'), 
    state = document.getElementById('status'); 

if (typeof window.FileReader === 'undefined') { 
    state.className = 'fail'; 
} else { 
    state.className = 'success'; 
    state.innerHTML = 'File API & FileReader available'; 
} 

holder.ondragover = function() { 
    this.className = 'hover'; 
    return false; 
}; 
holder.ondragend = function() { 
    this.className = ''; 
    return false; 
}; 
holder.ondrop = function(e) { 
    this.className = ''; 
    e.preventDefault(); 

    var file = e.dataTransfer.files[0], 
     reader = new FileReader(); 
    reader.onload = function(event) { 
     console.log(event.target); 
     holder.innerText = event.target.result; 
    }; 
    console.log(file); 
    reader.readAsText(file); 

    return false; 
};​ 
+0

'मैकडैगेंड' ईवेंट क्रोम 56 पर काम नहीं कर रहा था, मेरे मैक पर। मुझे इसे 'onmouseleave' में बदलना पड़ा। – Jersh

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