मेरे पास कोड का निम्न ब्लॉक है जो मेरे स्प्रिंग एमवीसी वेब एप्लिकेशन में उपयोग की जा रही एक तस्वीर का एक फ़ाइल अपलोड कर रहा है। मैं फाइल अपलोड को संभालने के लिए स्प्रिंग एमवीसी कॉमन्स मल्टीपार्टफाइल रीसोल्वर का उपयोग कर रहा हूं।स्प्रिंग फ़ाइल के साथ समस्या
if(model.getPhoto() != null){
if(!model.getPhoto().isEmpty()){
MultipartFile file = model.getPhoto();
String fileName = file.getOriginalFilename();
String filePath = baseDirectory + fileName;
FileOutputStream fos = new FileOutputStream(filePath);
try
{
fos.write(file.getBytes());
agentProfile.setPhotoUri(fileName);
}
catch (IllegalStateException e)
{
System.out.println(e);
}
finally
{
fos.close();
}
}
}
मेरी ऐप-servlet.xml फ़ाइल में मेरे पास मल्टीपार्टफाइल रिज़ॉल्वर बीन को कॉन्फ़िगर करने के लिए निम्न कोड है।
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
</bean>
जब मैं फ़ोटो अपलोड कर रहा हूं तो मुझे कुछ यादृच्छिक समस्याएं आ रही हैं।
1) यदि मैं एक छोटी तस्वीर अपलोड करने के लिए जाता हूं, लगभग 3 केबी या तो, यह सफलतापूर्वक अपलोड हो जाएगा।
2) यदि मैं थोड़ी बड़ी तस्वीर अपलोड करने के लिए जाता हूं, तो यह निर्देशिका में फ़ाइल बना देगा, लेकिन 0 बाइट्स के आकार के साथ और निम्न त्रुटि संदेश देगा।
java.lang.IllegalStateException: File has been moved - cannot be read again
org.springframework.web.multipart.commons.CommonsMultipartFile.getBytes(CommonsMultipartFile.java:112)
com.mmz.admin.mvc.controller.AddAgentController.processFinish(AddAgentController.java:145)
org.springframework.web.servlet.mvc.AbstractWizardFormController.validatePagesAndFinish(AbstractWizardFormController.java:642)
org.springframework.web.servlet.mvc.AbstractWizardFormController.processFormSubmission(AbstractWizardFormController.java:492)
org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:265)
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
मैं इस तरह के एक CommonsMultipartFile वस्तु को संभालने के लिए के रूप में एक सादे MultipartFile वस्तु के लिए विरोध करते हैं यह स्विचिंग के रूप में एक जोड़े को अलग अलग विकल्प मल्टीपार्ट समाधानकर्ता को विन्यस्त की कोशिश की है, लेकिन कुछ भी नहीं बदला।
मैंने निम्न संपत्ति के साथ CommonsMultipartFileResolver बीन में अधिकतम अपलोड आकार को कॉन्फ़िगर करने का भी प्रयास किया है।
<property name="maxUploadSize" value="1024000000"/>
कुछ भी नहीं बदला। मुझे यकीन नहीं है कि CommonsMultipartResolver फ़ाइल के आकार के रूप में कितना डिफ़ॉल्ट रूप से अपलोड किया जा सकता है, लेकिन यह मेरा प्रश्न नहीं है।
मुझे बताया गया है कि जिस समस्या का मैं अनुभव कर रहा हूं वह मल्टीपार्ट पार्सर/हैंडलर में वसंत का उपयोग कर रहा है। मेरे पास इसी समस्या के बारे में हालिया पोस्ट था, और क्योंकि नई जानकारी मिली, नई जानकारी के साथ दोबारा पोस्ट करना चाहता था। पुरानी पोस्ट CommonsMultipartFileResolver Problem
मुझे लगता है कि मैंने अतिरिक्त दस्तावेज खोजने के लिए इंटरनेट पर लगभग हर संसाधन की जांच की है, लेकिन समस्या को समझने में असमर्थ हूं।
कृपया मुझे यह जानने में मदद करें कि इसके साथ क्या चल रहा है, और यदि कोई बेहतर है, तो सरल समाधान उन विकल्पों का पता लगाने के लिए समाधान हो सकता है, लेकिन अगर मैं समाधान ढूंढ सकता हूं तो मैं अपनी वर्तमान विधि के साथ रहना पसंद करूंगा।
संपादित नोट- मैं अपलोड करने के लिए अलग अलग आकार तस्वीरों के साथ प्रयोग कर रहे हैं, और मुझे विश्वास है कि सीमा है कि यह मुझे अपलोड करने के लिए अनुमति दे रहा है 10KB के आसपास है। 10Kb के बाद बड़ा कुछ भी इसे तोड़ने और मुझे ऊपर की त्रुटि दे रहा है।
देखें http://stackoverflow.com/questions/11792107/multipartresolver-is-not-working – lrkwz