2013-01-21 31 views
6

के रूप में अशक्त से पता चलता एचटीएमएल टुकड़ा एक servlet नामित सर्वलेट करने के लिए एक post अनुरोध भेजता है। अनुरोध multipart/form-data का प्रकार है। लेकिन सर्वलेट को उस हिस्से के नाम के लिए कुछ भी नहीं मिलता है जो मैं पुनर्प्राप्त करने का प्रयास करता हूं। ऐसा क्यों है ?सर्वलेट भाग को पुनः प्राप्त क्यों नहीं करता है? यह फ़ाइल नाम

<form method="post" action="servlet" enctype="multipart/form-data"> 
     <input type="file" value="browse" name="FileShared" /> 
     <input type="submit" value="submit" /> 
</form> 

import javax.servlet.http.Part; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

    @Override 
protected void doPost(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    response.setContentType("text/plain"); 
    //String fileName = request.getPart("FileShared").getName(); 
    // Throws a nullpointer exception if I don't comment the above statement 
    PrintWriter writer = response.getWriter(); 
    //writer.println(fileName); 
    Collection<Part> c = request.getParts(); 
    Iterator i = c.iterator(); 
    while(i.hasNext()) { 
     writer.println("Inside while loop"); // This statement never gets printed 
     writer.println(i.next()); 
    } 
    writer.println("outside while loop"); // Only this statement gets printed 
} 
+0

संभव डुप्लिकेट [JSP/Servlet का उपयोग कर सर्वर पर फ़ाइलें अपलोड करने के लिए कैसे?] (Http://stackoverflow.com/questions/2422468/how-to-upload-files -to-server-use-jsp-servlet) –

+0

बलुस ने एक [संबंधित SO प्रश्न] के लिए एक उत्कृष्ट उत्तर लिखा है (http://stackoverflow.com/questions/2422468/how-to-upload-files-to-server-using -jsp-servlet) Serlvet 3.0 का उपयोग कर फ़ाइल अपलोड से संबंधित है। –

उत्तर

14

आप सर्वलेट 3.0 HttpServletRequest#getParts() विधि का उपयोग करना चाहते हैं, तो आप @MultipartConfig के साथ अपने सर्वलेट व्याख्या करना होगा।

उदाहरण:

@WebServlet(urlPatterns={"/SampleServlet"}) 
@MultipartConfig 
public class SampleServlet extends HttpServlet { 

} 
की
+0

Servlet <3.0 के मामले में यह कैसे किया जा सकता है विशिष्ट Servlet 2.5 – Chaitanya

+2

यह जादू की तरह काम करता है। –