Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> प्रोग्रामिंग

आप जेएसपी का उपयोग करके फाइल कैसे अपलोड कर सकते हैं?

<घंटा/>

एक जेएसपी का उपयोग एचटीएमएल फॉर्म टैग के साथ किया जा सकता है ताकि उपयोगकर्ता सर्वर पर फाइल अपलोड कर सकें। अपलोड की गई फ़ाइल टेक्स्ट फ़ाइल या बाइनरी या छवि फ़ाइल या कोई भी दस्तावेज़ हो सकती है।

फ़ाइल अपलोड फ़ॉर्म बनाना

आइए अब समझते हैं कि फाइल अपलोड फॉर्म कैसे बनाया जाता है। निम्न HTML कोड एक अपलोडर प्रपत्र बनाता है। ध्यान देने योग्य महत्वपूर्ण बिंदु निम्नलिखित हैं -

  • फ़ॉर्म विधि विशेषता को POST . पर सेट किया जाना चाहिए विधि और GET पद्धति का उपयोग नहीं किया जा सकता है।

  • फ़ॉर्म एन्टाइप विशेषता को मल्टीपार्ट/फॉर्म-डेटा पर सेट किया जाना चाहिए ।

  • फ़ॉर्म कार्रवाई विशेषता को जेएसपी फ़ाइल पर सेट किया जाना चाहिए जो बैकएंड सर्वर पर फ़ाइल अपलोडिंग को संभालेगा। निम्न उदाहरण uploadFile.jsp का उपयोग कर रहा है फ़ाइल अपलोड करने के लिए प्रोग्राम फ़ाइल।

  • एकल फ़ाइल अपलोड करने के लिए आपको एकल <इनपुट .../> . का उपयोग करना चाहिए विशेषता के साथ टैग प्रकार ="फ़ाइल" . एकाधिक फ़ाइलों को अपलोड करने की अनुमति देने के लिए, नाम विशेषता के लिए अलग-अलग मानों वाले एक से अधिक इनपुट टैग शामिल करें। ब्राउज़र उनमें से प्रत्येक के साथ एक ब्राउज़ बटन को संबद्ध करता है।

उदाहरण

  <शीर्षक>फ़ाइल अपलोड करने का फ़ॉर्म   

फ़ाइल अपलोड:

अपलोड करने के लिए एक फ़ाइल का चयन करें:
<इनपुट प्रकार ="फ़ाइल" नाम ="फ़ाइल" आकार ="50" />
<इनपुट प्रकार ="सबमिट" मान ="अपलोड फाइल" />

यह निम्नलिखित परिणाम प्रदर्शित करेगा। अब आप स्थानीय पीसी से एक फाइल का चयन कर सकते हैं और जब उपयोगकर्ता "अपलोड फाइल" पर क्लिक करता है, तो फॉर्म चयनित फाइल के साथ जमा हो जाता है -

आउटपुट

फ़ाइल अपलोडअपलोड करने के लिए फ़ाइल का चयन करें

नोट -उपरोक्त फॉर्म सिर्फ डमी फॉर्म है और काम नहीं करेगा, आपको इसे काम करने के लिए अपनी मशीन पर उपरोक्त कोड का प्रयास करना चाहिए।

बैकएंड JSP स्क्रिप्ट लिखना

आइए अब हम उस स्थान को परिभाषित करते हैं जहां अपलोड की गई फ़ाइलें संग्रहीत की जाएंगी। आप इसे अपने प्रोग्राम में हार्ड कोड कर सकते हैं या इस निर्देशिका नाम को बाहरी कॉन्फ़िगरेशन जैसे संदर्भ-परम का उपयोग करके भी जोड़ा जा सकता है web.xml में तत्व इस प्रकार है -


 .... <संदर्भ-परम> <विवरण> अपलोड की गई फ़ाइल को संग्रहीत करने का स्थान फ़ाइल-अपलोड  c:\apache-tomcat-5.5.29\webapps\data\   ....

UploadFile.jsp के लिए स्रोत कोड निम्नलिखित है:. यह एक बार में कई फाइलों को अपलोड करने का काम संभाल सकता है। आइए अब फाइलों को अपलोड करने के साथ आगे बढ़ने से पहले निम्नलिखित पर विचार करें।

  • निम्न उदाहरण फ़ाइल अपलोड पर निर्भर करता है; सुनिश्चित करें कि आपके पास commons-fileupload.x.x.jar . का नवीनतम संस्करण है अपने क्लासपाथ में फ़ाइल करें। आप इसे https://commons.apache.org/fileupload/ से डाउनलोड कर सकते हैं।

  • फाइलअपलोड कॉमन्स आईओ पर निर्भर करता है; सुनिश्चित करें कि आपके पास commons-io-x.x.jar . का नवीनतम संस्करण है अपने क्लासपाथ में फ़ाइल करें। आप इसे https://commons.apache.org/io/ से डाउनलोड कर सकते हैं।

  • निम्नलिखित उदाहरण का परीक्षण करते समय, आपको एक फ़ाइल अपलोड करनी चाहिए जो कि maxFileSize . से कम आकार की हो अन्यथा फ़ाइल अपलोड नहीं की जाएगी।

  • सुनिश्चित करें कि आपने निर्देशिकाएं बनाई हैं c:\temp और c:\apache-tomcat5.5.29\webapps\data बहुत पहले से।

<%@ पृष्ठ आयात ="java.io.*,java.util.*, javax.servlet.*" %><%@ पृष्ठ आयात ="javax.servlet.http.*" %><%@ पृष्ठ आयात ="org.apache.commons.fileupload.*" %><%@ पृष्ठ आयात ="org.apache.commons.fileupload.disk.*" %><%@ पृष्ठ आयात ="org.apache.commons. fileupload.servlet.*" %><%@ पृष्ठ आयात ="org.apache.commons.io.output.*" %><% फ़ाइल फ़ाइल; इंट मैक्सफाइलसाइज =5000 * 1024; int maxMemSize =5000 * 1024; ServletContext प्रसंग =pageContext.getServletContext (); स्ट्रिंग फ़ाइलपाथ =संदर्भ। getInitParameter ("फ़ाइल-अपलोड"); // सामग्री प्रकार सत्यापित करें स्ट्रिंग सामग्री टाइप =request.getContentType (); अगर ((contentType.indexOf ("मल्टीपार्ट/फॉर्म-डेटा")> =0)) {DiskFileItemFactory factory =new DiskFileItemFactory (); // अधिकतम आकार जो मेमोरी फैक्ट्री में स्टोर किया जाएगा। सेटसाइज थ्रेशोल्ड (मैक्समेम साइज); // डेटा को बचाने के लिए स्थान जो maxMemSize से बड़ा है। Factory.setRepository (नई फ़ाइल ("सी:\\ अस्थायी")); // एक नई फ़ाइल अपलोड हैंडलर बनाएँ ServletFileUpload अपलोड =नया ServletFileUpload (कारखाना); // अधिकतम फ़ाइल आकार अपलोड किया जाना है। upload.setSizeMax (maxFileSize); कोशिश करें {// फ़ाइल आइटम प्राप्त करने के अनुरोध को पार्स करें। सूची fileItems =upload.parseRequest (अनुरोध); // अपलोड की गई फ़ाइल आइटम को संसाधित करें Iterator i =fileItems.iterator (); out.println (""); out.println ("<सिर>"); out.println ("<शीर्षक>जेएसपी फ़ाइल अपलोड"); out.println (""); out.println ("<बॉडी>"); जबकि (i.hasNext ()) { FileItem fi =(FileItem)i.next (); अगर (!fi.isFormField ()) {// अपलोड की गई फ़ाइल पैरामीटर प्राप्त करें स्ट्रिंग फ़ील्डनाम =fi.getFieldName (); स्ट्रिंग फ़ाइल नाम =fi.getName (); बूलियन isInMemory =fi.isInMemory (); लंबा आकारइनबाइट्स =fi.getSize (); // फ़ाइल लिखें if(fileName.lastIndexOf("\\")>=0) { file =new File(filePath + fileName.substring(fileName.lastIndexOf("\\"))); } और {फ़ाइल =नई फ़ाइल (filePath + fileName.substring(fileName.lastIndexOf("\\")+1)); } फाई.लिखें (फ़ाइल); out.println ("अपलोड किया गया फ़ाइल नाम:" + फ़ाइलपाथ + फ़ाइल नाम + "
"); } } out.println (""); out.println (""); } पकड़ (अपवाद पूर्व) { System.out.println (पूर्व); } } और { out.println (""); out.println ("<सिर>"); out.println ("<शीर्षक>सर्वलेट अपलोड"); out.println (""); out.println ("<बॉडी>"); out.println ("

कोई फ़ाइल अपलोड नहीं की गई

"); out.println (""); out.println (""); }%>

अब आपके द्वारा ऊपर बनाए गए HTML फॉर्म का उपयोग करके फ़ाइलें अपलोड करने का प्रयास करें। जब आप कोशिश करते हैं https://localhost:8080/UploadFile.htm , यह निम्नलिखित परिणाम प्रदर्शित करेगा। यह आपकी स्थानीय मशीन से किसी भी फाइल को अपलोड करने में आपकी मदद करेगा।

फ़ाइल अपलोडअपलोड करने के लिए फ़ाइल का चयन करें

यदि आपकी JSP स्क्रिप्ट ठीक काम करती है, तो आपकी फ़ाइल को c:\apache-tomcat5.5.29\webapps\data\ में अपलोड किया जाना चाहिए निर्देशिका।


  1. हम JDBC का उपयोग करके डेटाबेस से फ़ाइल कैसे प्राप्त कर सकते हैं?

    परिणाम सेट इंटरफ़ेस getClob() . नामक विधियाँ प्रदान करता है और getCharacterStream() क्लॉब को पुनः प्राप्त करने के लिए डेटाटाइप, जिसमें किसी फ़ाइल की सामग्री को आम तौर पर संग्रहीत किया जाता है। ये विधियाँ स्तंभ के सूचकांक (या, स्तंभ के नाम का प्रतिनिधित्व करने वाला एक स्ट्रिंग मान) का प्रतिनिधित्व क

  1. अब आप Windows 11 पर Android ऐप्स का उपयोग करने का प्रयास कर सकते हैं:यहां बताया गया है:

    विंडोज 11 की बड़ी विशेषताओं में से एक एंड्रॉइड ऐप सपोर्ट है। जैसे विंडोज 10 ने विंडोज कंप्यूटर को वास्तव में लिनक्स का उपयोग किए बिना लिनक्स प्रोग्राम चलाने का एक तरीका प्रदान करने के लिए लिनक्स के लिए विंडोज सबसिस्टम पेश किया, वैसे ही विंडोज 11 भी एंड्रॉइड के लिए विंडोज सबसिस्टम नामक कुछ का उपयोग क

  1. आप Android पर ऐप फ़ाइलें (Apks) कैसे संग्रहित कर सकते हैं?

    Android ऑपरेटिंग सिस्टम नियमित कंप्यूटर ऑपरेटिंग सिस्टम जैसे Windows, macOS और Linux से काफी अलग है। सभी कंप्यूटर ऑपरेटिंग सिस्टम में एक इंस्टॉलेशन फ़ाइल होती है, जो निष्पादित होने पर आपके कंप्यूटर पर एप्लिकेशन इंस्टॉल करती है। स्थापना प्रक्रिया में विंडोज रजिस्ट्री में विवरण दर्ज करना, डेस्कटॉप और