2011-05-30 10 views
5

मैं जावास्क्रिप्ट में गतिशील रूप से एक टेक्स्ट फ़ाइल जेनरेट करना चाहता हूं, फिर इसे डाउनलोड के लिए ऑफ़र करें। वर्तमान में मैं निम्न समाधानों में से किसी के साथ एक हद तक इस काम के प्राप्त कर सकते हैं:मैं एक फ़ाइल कैसे उत्पन्न कर सकता हूं और इसे सादे जावास्क्रिप्ट में डाउनलोड करने के लिए कैसे पेश कर सकता हूं?

content = "abc123"; 
document.location = "data:text/octet-stream," + encodeURIComponent(content); 

या

content = "abc123";  
var bb = new BlobBuilder(); 
bb.append(content); 
var blob = bb.getBlob(); 
blob = blob.slice(0, blob.size, 'text/octet-stream'); 
var fr = new FileReader(); 
fr.onload = function() {document.location = this.result;} 
fr.readAsDataURL(blob); 

हालांकि, इन समाधानों में से दोनों, जब डाउनलोड बॉक्स प्रकट होता है, केवल एक डिफ़ॉल्ट फ़ाइल नाम की पेशकश करेगा संवाद के रूप में सहेजने में 'डाउनलोड' का।

मेरा प्रश्न मूल रूप से है, मैं कैसे एक विशिष्ट फ़ाइल नाम उदाहरण 'readme.txt' या 'scene.obj' के लिए

इसके अलावा डेटा प्रकार ध्यान दें था पहले से 'पाठ/सादे' लेकिन इस करता है, तो करने के लिए इसे बदल सकते हैं इसका उपयोग किया जाता है, दस्तावेज इसे डाउनलोड करने के बजाए नए टेक्स्ट दस्तावेज़ में स्विच करता है (जैसे पाठ/ऑक्टेट-स्ट्रीम ऐसा लगता है)।

मुझे फ़्लैश समाधान नहीं चाहिए, जावास्क्रिप्ट/एचटीएमएल 5 केवल सुझाव कृपया।

चीयर्स, जोश

+0

संभव का उपयोग कर FileSaver इंटरफेस प्रदान करता है पाया का डुप्लिकेट [क्या डेटा का उपयोग करते समय सुझाए गए फ़ाइल नाम निर्दिष्ट करने का कोई तरीका है: यूआरआई?] (http://stackoverflow.com/questions/283956/is-there-any-way-to-specify-a- सुझाया गया- filename- जब-उपयोग-डेटा-यूरी) –

+0

यह सुझाए गए लिंक का डुप्लिकेट प्रतीत होता है, यह सुनिश्चित नहीं है कि मुझे खोजे जाने पर मुझे यह क्यों नहीं मिला। इस प्रश्न का उत्तर देने वाले लोग लिंक का पालन करना चाहिए। –

उत्तर

4

के लिए, आप FileSaver FileAPI से उपयोग करना होगा। अभी के लिए, यह केवल एक मसौदा है, और mailing list answer के अनुसार यह अभी तक ब्राउज़र में लागू नहीं है।

आप कार्यान्वयन प्रगति

युपीडी 02.08.2013 के बारे में अप करने की तारीख की जानकारी प्राप्त करने के लिए एक chromium issue पर उदाहरण के लिए देख सकते हैं: मैं के बाद से एक project कि साफ चाल

+1

आईई 10 विशेषताएं msSaveOrOpenBlob और msSaveBlob। थीस आईई 10 में उपलब्ध दो विधियां हैं जो साइट को उपयोगकर्ता को अपने कंप्यूटर पर ब्लॉब सहेजने के लिए कहती हैं। Http://blogs.msdn.com/b/ie/archive/2012/01/27/creating-files-through-blobbuilder.aspx पर और अधिक – Alexander

0

मुझे लगता है कि आप की जाँच करनी चाहिए: लेखक विनिर्देश: jQuery Table to CSV export

+0

ये समाधान दिखते हैं कि वे सर्वर-साइड स्क्रिप्टिंग पर निर्भर हैं, मैं क्लाइंट-साइड से चिपकने वाला हूं। वैसे भी सुझाव के लिए धन्यवाद। –

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

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