मेरे पास एक अपलोड फॉर्म वाला एक वेब एप्लिकेशन है जहां उपयोगकर्ता फाइल अपलोड कर सकते हैं।जावा ईई - अपलोड की गई फाइलों के वास्तविक रास्ते को पाने का सबसे अच्छा तरीका?
मैं फ़ाइलों को एक फ़ोल्डर 'फाइल' स्टोर करना चाहता हूं। और मैं यह फ़ोल्डर सीधे वेबैप-रूट के नीचे रखना चाहता हूं।
struts2 का उपयोग करना, मेरी uploadFileAction में, मैं आसानी से इस पथ String uploadDir = ServletActionContext.getServletContext().getRealPath("/files")+ "/";
के साथ सेट कर सकते हैं लेकिन जब मैं फ़ाइलों, जाहिरा तौर पर मेरी सेम जो getServletContext()
करने के लिए फ़ाइल पहुँच नहीं है का उपयोग करने की कोशिश करता है प्राप्त करने का प्रयास कर रहा हूँ और इस प्रकार getRealPath
पर एक nullpointer फेंकता है अब मैं यह पता लगाने की कोशिश कर रहा हूं कि मुझे यह कैसे करना चाहिए। मैंने वसंत संसाधन के बारे में सुना है कि जाने का रास्ता है, लेकिन मुझे कोई प्रासंगिक उदाहरण नहीं मिल रहा है।
क्या मेरे पथ पाने का कोई आसान तरीका है? मैं सिर्फ रूटपैथ को अपने वेबपैप पर चाहता हूं। कुछ भी कम नहीं ...
वाह। मैंने इसके बारे में सोचा नहीं था। मेरी स्पष्ट त्रुटि को इंगित करने के लिए धन्यवाद। लेकिन जैसे ही मैं प्लेटफॉर्म (लिनक्स-विंडोज़) के बीच चल रहा हूं, मुझे अपने अपलोड डीआईआर के सापेक्ष पथ की आवश्यकता है। जब भी मैं प्लेटफॉर्म-कूद करता हूं, तो मैं प्रॉपर्टी फ़ाइल को संपादित करना पसंद नहीं करता ... – user829237
जावा 'फ़ाइल' एपीआई में, यूनिक्स जैसे पथ '/ var/webapp/uploads' जैसे विंडोज़ में भी ठीक है। यह केवल उस डिस्क के सापेक्ष होगा जहां से कोड निष्पादित किया गया है और जावा स्लेश के बारे में परवाह करेगा। जैसे जब सर्वर 'सी:' पर चलता है, तो यह 'C: \ var \ webapp \ uploads' के रूप में समाप्त हो जाएगा। – BalusC
उस बिट को साफ़ करने के लिए धन्यवाद। मुझे यूनिक्स-न्यूब होने के लिए क्षमा करें, लेकिन मुझे अभी भी कुछ निश्चित नहीं है कि पथ को कैसे निर्दिष्ट किया जाए, क्योंकि मेरा यूनिक्स सर्वर एक साझा होस्ट है और मुझे लगता है कि मुझे केवल ~ निर्देशिका तक पहुंच है और मुझे इसे रखना होगा फाइलें उस के नीचे कहीं भी .. किसी भी पॉइंटर्स बहुत मददगार होंगे! – user829237