मेरे पास एक सिल्वरलाइट एप्लिकेशन है जिसे सर्वर पर बड़ी फ़ाइलों को अपलोड करने की आवश्यकता है। मैंने दोनों वेब क्लाइंट के साथ-साथ एक HttpWebRequest का उपयोग करके अपलोड करने पर भी ध्यान दिया है, हालांकि मुझे किसी भी विकल्प के साथ अपलोड को स्पष्ट तरीके से स्ट्रीम नहीं किया गया है। फ़ाइलों के आकार के लिए, अपलोडिंग से पहले पूरी सामग्री को स्मृति में लोड करना उचित नहीं है। क्या यह सिल्वरलाइट में संभव है?सिल्वरलाइट स्ट्रीमिंग अपलोड
उत्तर
आप "चंकिंग" दृष्टिकोण के साथ जा सकते हैं। सिल्वरलाइट फ़ाइल Codeplex पर अपलोडर इस तकनीक का उपयोग करता:
http://www.codeplex.com/SilverlightFileUpld
एक हिस्सा आकार को देखते हुए (जैसे 10k, 20k, 100k, आदि), तो आप फ़ाइल को विभाजित और एक HTTP का उपयोग कर सर्वर पर प्रत्येक हिस्सा भेज सकते हैं निवेदन। सर्वर को प्रत्येक खंड को संभालने और फ़ाइल को दोबारा इकट्ठा करने की आवश्यकता होगी क्योंकि प्रत्येक खंड आता है। एक वेब फार्म परिदृश्य में जब कई वेब सर्वर होते हैं - इस दृष्टिकोण के लिए वेब सर्वर पर स्थानीय फ़ाइल सिस्टम का उपयोग न करने के लिए सावधान रहें।
'भाग' को बनाए रखने के बारे में कोई विचार 'सर्वर की तरफ (डब्ल्यूसीएफ में कहें) और पुनः इकट्ठा? – atconway
मैंने दो तकनीकों का उपयोग किया है: 1) फ़ाइल सिस्टम पर फ़ाइल के रूप में प्रत्येक खंड को फ़ाइल के रूप में सहेजें, फिर सभी हिस्सों को लिखने के बाद उचित क्रम में फ़ाइलों को दोबारा इकट्ठा करें और 2) प्रत्येक खंड को बाइनरी डेटा के रूप में सहेजें एक डेटाबेस और फिर फिर से इकट्ठा। यदि आपकी साइट को एक से अधिक वेब सर्वर में संतुलित किया जा रहा है तो आपको तकनीक # 2 या किसी प्रकार की वितरित फ़ाइल सिस्टम का उपयोग करने की आवश्यकता होगी। – kindohm
चूंकि मेरा फ़ाइल सिस्टम स्थान उसी सर्वर पर रहता है जहां डब्ल्यूसीएफ सर्वर मौजूद है और यह * लोड * संतुलित लोड सर्वर नहीं है, मुझे लगता है कि # 1 वास्तव में अच्छा काम करेगा। क्या आपके पास भाग लिखने और पुनः संयोजित करने के कोई उदाहरण हैं? आप किस प्रकार के पाठक/लेखक का उपयोग करेंगे। सहायता के लिए धन्यवाद। – atconway
यह असाधारण प्रतीत होता है कि सिल्वरलाइट में वेब क्लाइंट प्रगति की घटनाओं के साथ सर्वर को स्ट्रीम पंप करने का साधन प्रदान करने में विफल रहता है। यह एक विशेष रूप से अद्भुत है क्योंकि यह एक स्ट्रिंग अपलोड के लिए पेश किया जाता है!
यह कोड करना संभव है कि आप HttpWebRequest के साथ क्या करना चाहते हैं।
BeginGetRequestStream
के लिए कॉल में वापस आप आउटगोइंग अनुरोध के लिए स्ट्रीम प्राप्त कर सकते हैं और फिर अपनी फ़ाइल के स्ट्रीम से भाग पढ़ सकते हैं और उन्हें आउटपुट स्ट्रीम में लिख सकते हैं। दुर्भाग्यवश सिल्वरलाइट आउटपुट स्ट्रीम बंद होने तक आउटपुट को सर्वर पर भेजना शुरू नहीं करता है। इस दौरान यह सब डेटा संग्रहीत होने के बाद समाप्त होता है, मुझे नहीं पता, यह संभव है कि यदि यह पर्याप्त हो जाता है तो एसएल एक अस्थायी फ़ाइल का उपयोग कर सकता है ताकि मशीन मेमोरी पर दबाव न डाले, लेकिन फिर यह इसे स्मृति में संग्रहीत कर सकता है वैसे भी।
संभवतः इसका एकमात्र समाधान सॉकेट के माध्यम से HTTP प्रोटोकॉल लिखना संभव है।
तक हो सकती हैं, मैं सॉकेट के बारे में थोड़ा सा पता लगाता हूं और मुद्दा यह है कि सिल्वरलाइट सॉकेट पोर्ट 80 (केवल 4502 से 4534) से कनेक्ट नहीं हो सकता है – herbrandson
- 1. स्ट्रीमिंग?
- 2. स्ट्रीमिंग
- 3. Apache FileUpload स्ट्रीमिंग API
- 4. डब्ल्यूसीएफ चंकिंग/स्ट्रीमिंग
- 5. Google होस्टिंग वीडियो स्ट्रीमिंग/स्ट्रीमिंग प्लेटफ़ॉर्म के रूप में?
- 6. सर्वलेट 3.0 स्ट्रीमिंग एपीआई
- 7. स्ट्रीमिंग और लाइव स्ट्रीमिंग के बीच अंतर?
- 8. एंड्रॉइड जीसन स्ट्रीमिंग पार्सर या android.util.jsonreader स्ट्रीमिंग?
- 9. WCF स्ट्रीमिंग
- 10. हडोप स्ट्रीमिंग
- 11. स्ट्रीमिंग सेवा
- 12. नोडज स्ट्रीमिंग
- 13. H264 स्ट्रीमिंग
- 14. हडोप स्ट्रीमिंग
- 15. सिल्वरलाइट
- 16. सिल्वरलाइट
- 17. सिल्वरलाइट
- 18. सिल्वरलाइट
- 19. सिल्वरलाइट
- 20. सिल्वरलाइट
- 21. सिल्वरलाइट
- 22. सिल्वरलाइट
- 23. सिल्वरलाइट
- 24. सिल्वरलाइट
- 25. सिल्वरलाइट
- 26. सिल्वरलाइट
- 27. सिल्वरलाइट
- 28. सिल्वरलाइट
- 29. सिल्वरलाइट
- 30. सिल्वरलाइट
+1 वास्तव में एक अच्छा सवाल है, मेरी इच्छा है कि मेरा कोई अच्छा जवाब हो। हम किस फाइल के बारे में बात कर रहे हैं? – AnthonyWJones
वहाँ WAV फाइलें जो लगभग 150+ मेग्स – herbrandson