2008-09-30 26 views
5

मैं इस बारे में कुछ सुझावों के बारे में सोच रहा हूं कि इस बारे में कैसे जाना है। किसी भी इनपुट की सराहना की है!मैं एक एक्सपीएस दस्तावेज़ को ब्राउज़र में कैसे स्ट्रीम कर सकता हूं और इसे किसी वेबपृष्ठ में एम्बेड कर सकता हूं?

वर्तमान में, मेरे पास एक एएसपी.नेट एमवीसी एप्लीकेशन है। क्लाइंट पर, मेरे पास एक एक्सपीएस दस्तावेज़ की आईडी वाला एक लिंक है। जब उपयोगकर्ता लिंक पर क्लिक करता है, तो उसे दस्तावेज़ के बारे में विवरण के साथ एक पृष्ठ पर ले जाया जाता है। इस जानकारी के अतिरिक्त, मैं एक ही पृष्ठ में, इस जानकारी के साथ दस्तावेज़ को प्रदर्शित करना चाहता हूं।

सर्वर की ओर, मेरे पास आईडी होने के बाद, मैं डेटाबेस से बाइट सरणी के रूप में क्रमबद्ध दस्तावेज़ प्राप्त कर सकता हूं। सवाल यह है कि, उस क्रमबद्ध दस्तावेज़ को वेबपृष्ठ में प्राप्त करने के लिए सर्वोत्तम तरीका क्या है?

मैं उस दस्तावेज़ को फ़ाइल सिस्टम में छोड़ने और फिर फ़ाइल पथ को एक साथ नहीं छोड़ना पसंद करूंगा। मैं दस्तावेज़ को "application/vnd.ms-xpsdocument" सामग्री प्रकार के रूप में ब्राउज़र में स्ट्रीम करने में सक्षम होना चाहता हूं।

मैंने इसे संभालने के लिए एक वेब नियंत्रण का उपयोग करने की कोशिश की है (बाइनरी आउट नहीं लिख सकता), ऐसा करने के लिए एक HTTP हैंडलर बनाने के बारे में सोचा (कोई विचार नहीं है), और कुछ अन्य तरीकों से घिरा हुआ है ब्राउज़र पर दस्तावेज़ स्ट्रीम प्राप्त करने के लिए।

इसके अतिरिक्त, वेब पेज में दस्तावेज़ को एम्बेड करने का सवाल भी है। क्या मैं एक ईएमबीईडी टैग का उपयोग करता हूं? या एक वस्तु? या क्या मैं एक आईफ्रेम का उपयोग करता हूं और स्रोत को सेट करता हूं जो दस्तावेज़ को वितरित करता है?

फिर से, मुझे धनुष में एक समाधान को लपेटने की उम्मीद नहीं है। मैं इस बारे में कुछ सलाह ढूंढ रहा हूं कि इस बारे में कैसे जाना है। और, यह प्रश्न xps दस्तावेजों के बारे में है, यह किसी भी एप्लिकेशन पर लागू होता है जो ब्राउज़र में होस्ट की जाने वाली बाइनरी फ़ाइल को स्ट्रीम करता है (पीडीएफ, इत्यादि)।


ठीक है, ब्राउज़र में प्रदर्शित करने के लिए, एक शब्द: सिल्वरलाइट। यह हल हो गया है। मुझे अभी भी सर्वर से ब्राउज़र पर भेजने का सबसे अच्छा तरीका जानने का मुद्दा है।


स्ट्राइक करें। ऐसा लगता है कि सिल्वरलाइट अभी तक एक एक्सपीएस दस्तावेज़ प्रदर्शित करने के लिए पर्याप्त उन्नत नहीं है। मैं अब एक http हैंडलर को इंगित करने वाले आईफ्रेम के बारे में सोच रहा हूं ... iframe काम करता है। बहुत बुरा यह पूरी चीज पाइप नीचे फेंकता है। मुझे लगता है कि मैं हमेशा पहले पेज को बंद कर सकता हूं और उस पिल्ला को भेज सकता हूं ...


वाह। एक HTTP हैंडलर की कोई ज़रूरत नहीं है। एमवीसी में एक कस्टम एक्शन रिसेट की जरूरत है। वह कितना friggen भयानक है?

+0

एक्शन रिसेट पर अच्छा खोजें। –

उत्तर

2

मुझे लगता है कि विवरण पृष्ठ से दस्तावेज़ को एक लिंक (लक्ष्य = "_ खाली") के रूप में प्रदान करना सबसे आसान तरीका होगा। इसमें कई फायदे हैं:

  • आपको पूरे दस्तावेज़ को पुनर्प्राप्त करने और स्ट्रीम करने की आवश्यकता नहीं है जब तक उपयोगकर्ता इसे मांग न लेता।
  • मेरी प्रणाली पर कम से कम IE पहले से ही डिफ़ॉल्ट एक्सपीएस व्यूअर के रूप में पंजीकृत है, इसलिए दस्तावेज़ को अपनी खिड़की देकर आप इसे एम्बेड करने के पूरे प्रश्न से बचें।
  • दस्तावेज़ के लिए स्ट्रीमिंग स्रोत प्रदान करना आसान बनाता है: क्वेरी स्ट्रिंग पैरामीटर के लिए केवल एक आईडी के साथ एक HTTP हैंडलर का उपयोग करें।

भले ही आपको यह विचार पसंद न हो, निश्चित रूप से दस्तावेज़ को प्रेषित करने के लिए HTTP हैंडलर के साथ जाएं।यह करना आसान है: जब आप विजुअल स्टूडियो में एक नया HTTP हैंडलर बनाते हैं तो आपको पहले से किए गए सभी व्यस्त कार्यों के साथ एक अच्छा पृष्ठ देना चाहिए।

+0

यदि सही हो गया है, तो मुझे पूरी चीज को स्ट्रीम करने की आवश्यकता नहीं है क्योंकि एक्सपीएस दस्तावेजों को उनकी सामग्री को मांग पर पहुंचाने के लिए बनाया गया है। दस्तावेज़ में व्यक्तिगत पैकेज होते हैं जिन्हें पैकेज स्टोर द्वारा प्रबंधित किया जाता है। आवश्यकता होने पर व्यक्तिगत पैकेज वितरित किए जाते हैं। यह बहुत प्यारा है। – Will

+0

हे, मैं, यह बहुत बुरा है जो काम नहीं करेगा। सिल्वरलाइट अभी तक परिपक्व नहीं है। – Will

1

एक्सपीएस दस्तावेजों को प्रदर्शित करने में सक्षम एक सिल्वरलाइट नियंत्रण है। और