मैं ओरेकल एपेक्स में एक रिपोर्ट बनाने की कोशिश कर रहा हूं जो फाइलों की एक सूची प्रदर्शित करता है, और आपको उन्हें डाउनलोड करने की अनुमति देता है।

फाइलें बाहरी एप्लिकेशन द्वारा बनाई जा रही हैं और मेरा पूरा नियंत्रण है कि उन्हें कहां रखा गया है। अभी मैं उन्हें एपेक्स इमेज डायरेक्टरी (सी: \ ओरेकल \ उत्पाद \ 11.2.0 \ dbhome_1 \ शीर्ष \ छवियों) के सबफ़ोल्डर में बना रहा हूं। हालांकि, अगर मैं यहां से लिंक करने का प्रयास करता हूं, तो मुझे बस एक खाली पृष्ठ मिलता है - मैंने लिंक यूआरएल के रूप में #WORKSPACE_IMAGES# और #IMAGE_PREFIX# मानों को आजमाया है लेकिन यह काम नहीं करता है।

एपेक्स की flows_files.wwv_flow_file_objects$ तालिका में किसी एपेक्स पेज को करने के अलावा स्वचालित रूप से एक फ़ाइल जोड़ने का कोई तरीका प्रतीत नहीं होता है (या इसे एपेक्स वर्कस्पेस का उपयोग करके एक स्थिर फ़ाइल के रूप में अपलोड करें)। एक चीज जो मुझे लगता है कि तालिका में मैन्युअल रूप से एक रिकॉर्ड डालना संभव हो सकता है, लेकिन विभिन्न आईडी के साथ इसकी आवश्यकता होती है कि यह एक खान क्षेत्र हो सकता है।

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

6
Datajam 15 जुलाई 2011, 13:57

3 जवाब

सबसे बढ़िया उत्तर

अगर कोई इस प्रश्न पर ठोकर खाता है तो इसका उत्तर देने के लिए - मैं डेटाबेस में फ़ाइलों को बीएलओबी मानों के रूप में संग्रहीत करके इसे हल करने में कामयाब रहा। फिर आप यहां दिए गए निर्देशों का पालन करके इन फ़ाइलों को प्रस्तुत करने के लिए एपेक्स सेट कर सकते हैं: http://download.oracle.com/docs/cd/E14373_01/appdev.32/e13363/up_dn_files.htm#CIHHEHCJ

3
Datajam 4 अगस्त 2011, 19:02

यदि आप Tomcat, Apache या Glassfish में तैनात शीर्ष श्रोता या ORDS (Oracle Rest Data Services) का उपयोग करते हैं। आपको बस इतना करना है कि पहले अपने एप्लिकेशन सर्वर में अपने संदर्भ रूट (छवि फ़ोल्डर या /i) की पहचान करें।

Glassfish context root - image

फिर 'assets' जैसा फोल्डर बनाएं, उसके बाद उन सभी एसेट को कॉपी करें जिन्हें आपको अपने एपेक्स एप्लिकेशन में रेफर करने की जरूरत है।

एपेक्स में, आपको इन एसेट जैसे '/i/assets/file-name.jpg' को रेफर करना होगा।

यह सब अजीब विरासत पथ (HTML DB <---> एपेक्स 4.2) wwv_flow_file_mgr.get_file?p_security_group_id=123456789&p_fname= से बचने के लिए है जब आप अपने DB में स्थिर फ़ाइल को एप्लिकेशन फ़ाइल या कार्यक्षेत्र फ़ाइल के रूप में जोड़ते हैं . शीर्ष 5 में, आपके पास यह अजीब पथ नहीं है, इसके बजाय, आपके पास फ़ाइल का वर्चुअल पथ संदर्भ है।

2
Mad Physicist 1 अप्रैल 2016, 18:49

#WORKSPACE_IMAGES# जैसे स्ट्रिंग लौटाता है

wwv_flow_file_mgr.get_file?p_security_group_id=123456789&p_fname=

और इसलिए केवल शीर्ष फ़ाइल तालिका WWV_FLOW_FILES में संग्रहीत फ़ाइलों पर लागू होता है।

#IMAGE_PREFIX# /i/ की तरह एक स्ट्रिंग देता है, और इसका उपयोग एपेक्स इमेज फोल्डर में संग्रहीत फ़ाइलों को डाउनलोड करने के लिए लिंक में किया जा सकता है। उदाहरण के लिए मैं इस तरह एक लिंक बना सकता हूं:

<a href="#IMAGE_PREFIX#"javascript/apex_4_0.js">Download some JS</a>

और जब मैं पेज चलाता हूं और उस पर क्लिक करता हूं तो मैं उस फाइल को खोल या डाउनलोड कर सकता हूं।

एपेक्स इमेज फोल्डर के तहत अपनी खुद की फाइलों को स्टोर करने की अनुशंसा नहीं की जाती है, क्योंकि एपेक्स अपग्रेड के दौरान उन्हें ओवरराइट किया जा सकता है। इसके बजाय आप अपनी खुद की तार्किक निर्देशिका को परिभाषित कर सकते हैं उदा। /myfiles/ ऐप सर्वर पर एक अलग स्थान की ओर इशारा करते हुए और फिर संदर्भित करें कि इसके बजाय इस तरह:

<a href="/myfiles/picture1.jpg">Download picture 1</a>
1
Tony Andrews 15 जुलाई 2011, 15:37
मैंने इसके बारे में सोचा था, लेकिन मुझे नहीं पता कि एपेक्स इंस्टॉलेशन पर दस्तावेज़ रूट कहां है। क्या आप जानते हैं कि यह कहाँ होने की संभावना है?
 – 
Datajam
15 जुलाई 2011, 17:15
धन्यवाद, लेकिन मुझे लगता है कि मैं अब और भी भ्रमित हूं। मेरे पास बस ApEx श्रोता एम्बेडेड के साथ चल रहा है। पीएल/एसक्यूएल गेटवे; कोई Oracle HTTP सर्वर नहीं है।
 – 
Datajam
15 जुलाई 2011, 17:46
ठीक है तो उस पर ध्यान न दें। क्षमा करें मुझे उत्तर नहीं पता।
 – 
Tony Andrews
15 जुलाई 2011, 17:58