कैसे जावास्क्रिप्ट का उपयोग किसी फ़ाइल को खोलने के लिए?

वोट
7

मैं एक सर्वलेट कि सर्वलेट का उत्पादन स्ट्रीम में एक ByteArrayOutputStream के रूप में एक PDF फ़ाइल में लिखने की है। अगर मैं सर्वलेट खोलने यूआरएल ब्राउज़र फ़ाइल को खोलता है। लेकिन अगर सर्वलेट पर एक त्रुटि पाए जाते हैं, ब्राउज़र एक त्रुटि संदेश के साथ एक खाली पीडीएफ खोलता है। ServletResponse के माध्यम से भेजा जा रहा है एक त्रुटि ब्राउज़र डिफ़ॉल्ट त्रुटि पृष्ठ खुलता है।

मैं एक त्रुटि पृष्ठ पर रीडायरेक्ट करने, या अवैध pdf फ़ाइल खोले बिना एक त्रुटि संदेश भेजना चाहते हैं।

मैंने कोशिश की:

new Ajax.Request('/pdfservlet', {            
        onSuccess: function(response) {
            docWindow = window.open('','title');
            docWindow.document.open('application/pdf');
            docWindow.document.write(response);
            docWindow.document.close();
        },
        onFailure: function(response) {
            alert(response);
        }
    });

लेकिन, onSuccess [वस्तु वस्तु] के साथ एक पृष्ठ को खोलता है

मैं जावास्क्रिप्ट का उपयोग कर एक पीडीएफ फाइल कैसे खोल सकता हूँ?

17/04/2009 को 19:39
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


4 जवाब

वोट
2

आप एक "दो-पास" दृष्टिकोण की कोशिश कर सकते। आप अजाक्स सर्वलेट कॉल करने के लिए उपयोग करते हैं (और अगर यह मक्खी पर एक पीडीएफ उत्पन्न करता है, यह यह कैश है)। यदि यह सफल होता है, कैश की गई पीडीएफ लोड करने के लिए एक पैरामीटर के साथ सर्वलेट को उपयोगकर्ता अनुप्रेषित।

वहाँ अन्य विकल्प हैं, लेकिन यह कैसे आप पीडीएफ़ का उपयोग कर रहे पर निर्भर करता है।

मेरे $ 0.02 ..

17/04/2009 को 19:58
का स्रोत उपयोगकर्ता

वोट
10

नोट: मैं आप से प्रोटोटाइप ढांचे का उपयोग कर रहे संभालने कर रहा हूँ Ajax.Requestकॉल।

प्रतिक्रिया ऑब्जेक्ट सीधे लिखा जा करने के लिए है नहीं है, यह फिर भी करता है, है responseTextसंपत्ति जो लौट आए पीडीएफ शामिल करना चाहिए।

आपने कोशिश की है:

new Ajax.Request('/pdfservlet', {            
        onSuccess: function(response) {
            docWindow = window.open('','title');
            docWindow.document.open('application/pdf');
            document.write(response.responseText);
            docWindow.document.close();
        },
        onFailure: function(response) {
            alert(response);
        }
    });

(जोड़ा सूचना .responseText)

संपादित करें: ठीक है, तो उससे बात नहीं बनी ... कुछ इस तरह का प्रयास करें:

new Ajax.Request('/pdfservlet', {            
        onSuccess: function(response) {
            window.open('/pdfservlet');
        },
        onFailure: function(response) {
            alert(response);
        }
    });

क्या यह कर देगा ajax अनुरोध बनाने के है, और अगर सफल एक नई विंडो में खोलें। नई विंडो खोलने तेजी से होना चाहिए और वास्तव में के बाद से ब्राउज़र Ajax.Request कॉल के दौरान वह संचित किया जाना चाहिए था पीडीएफ फिर से अनुरोध कर रहा आवश्यकता नहीं।

17/04/2009 को 20:05
का स्रोत उपयोगकर्ता

वोट
0

ऐसा लगता है आप के रूप में "इनलाइन" अपनी PDF भेज रहे हैं के रूप में "लगाव" क्या आप एक डायनामिक रूप से तैयार Iframe में पीडीएफ का URL डाल सकता है करने का विरोध किया और तब से एक उपरिशायी है कि Iframe देते हैं। इससे काम बन जाएगा।

-JP

17/04/2009 को 20:56
का स्रोत उपयोगकर्ता

वोट
0

लेकिन अगर सर्वलेट पर एक त्रुटि पाए जाते हैं, ब्राउज़र एक त्रुटि संदेश के साथ एक खाली पीडीएफ खोलता है।

मुझे लगता है यह बेहतर हो यह सब कमजोर AJAX और कैश के साथ के बारे में नगण्य से सर्वर अंत में इसे ठीक करने की कोशिश करने का होगा। अपने त्रुटि संदेश के साथ शीर्ष लेख: क्यों एक सर्वलेट त्रुटि अभी भी 'आवेदन / पीडीएफ सामग्री-प्रकार' स्थापित कर रही है? सर्वलेट में चीजों को भेजने का आदेश की जाँच करें; 'सामग्री-प्रकार' भेजूँ नहीं जब तक आप पीडीएफ सफलतापूर्वक बनाया गया है और यह वापस जाने के लिए तैयार है।

18/04/2009 को 05:12
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more