2011-03-05 10 views
9

तो मेरे पास एक "फ़ाइल" ऑब्जेक्ट है (फ़ाइल ड्रैग को संभालने और डेस्कटॉप से ​​ड्रॉप करके पुनर्प्राप्त)। मैं फ़ाइलों को AJAX के साथ सर्वर पर भेज सकता हूं, और फिर उन्हें संभालने के लिए उन्हें जावास्क्रिप्ट के लिए वापस फेंक सकता हूं। लेकिन क्या यह सब किए बिना इसकी सामग्री को पढ़ना संभव है?"फ़ाइल" ऑब्जेक्ट की सामग्री पढ़ें?

Here, play around with this fiddle. किसी भी फ़ाइल को बॉक्स में खींचें और चर file का उपयोग करें।

मैंने पहले से ही इस ऑब्जेक्ट के सभी तरीकों का प्रयास किया है ... कोई भाग्य नहीं। क्या आप उस फ़ाइल की सामग्री प्राप्त कर सकते हैं जिसे आपने अभी ब्राउज़र में खींचा है?

पुनश्च: मैं इस तरह सर्वर पर फ़ाइलें भेजना होगा:

var ajaxRequest = new XMLHttpRequest(); 
ajaxRequest.open("returnRawPostData.php"); 
ajaxRequest.send(file); 

मैं उपरोक्त कोड में कुछ छूट गया हो सकता है, लेकिन यह है कि सिर्फ इसलिए कि एक अब और AJAX कॉल करने के लिए सादा जे एस का उपयोग नहीं करता है ।

+0

देखें http://stackoverflow.com/questions/2657653/drag-and-drop-file-upload-in-google-chrome-chromium – Detect

+1

मुझे नहीं लगता कि मेरे प्रश्न का उत्तर – JCOC611

उत्तर

16

से मार्टिन मैली (! बहुत बहुत शुक्रिया) लिंक का उपयोग करना, मैं इस के साथ आया था।

+0

एक आकर्षण की तरह काम किया! आप दोनों को धन्यवाद! – Nefreo

7

मुझे लगता है कि यह संभव है; चेक इन दो लेख: साथ

  1. https://developer.mozilla.org/en/Using_files_from_web_applications
  2. http://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/

वे दोनों manipulates सर्वर पर अपलोड करने से पहले जे एस/HTML के माध्यम से फ़ाइल "गिरा दिया"। (उदाहरण के लिए चित्र आकार बदलने आदि) मुझे उम्मीद है कि यह मदद करता है।

var file = e.dataTransfer.files[0],read = new FileReader(); 

read.readAsBinaryString(file); 

read.onloadend = function(){ 
    console.log(read.result); 
} 

कहाँ read.result फ़ाइल की सामग्री रखती है:

+0

+1 बहुत बहुत धन्यवाद ! – JCOC611

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