मुझे वसंत वेबफ्लो 1.0 और स्ट्रैट्स 1.3 का उपयोग करके फ़ाइल अपलोड करने में समस्या आ रही है।स्ट्रूट्स - फ़ाइलें अपलोड करना
public class AttachDocumentsForm extends SpringBindingActionForm {
// note, SpringBindingActionForm extends struts' ActionForm
private FormFile file;
//snip
}
अब, मेरी समस्या है कि जब मैं फ़ॉर्म सबमिट करेंगे, file
क्षेत्र हमेशा null
है:
<html:form action="/flowAction" method="post" enctype="multipart/form-data">
<!-- snip -->
<html:file property="file" name="attachDocumentsForm" size="50"/>
<!-- snip -->
</html:form>
फार्म कुछ इस तरह है:
jsp कुछ इस तरह है । फॉर्म पर अन्य फ़ील्ड ठीक से भर चुके हैं, और यदि मैं RequestContext
के माध्यम से खोदता हूं, तो मुझे लगता है कि फाइल को कुछ डेटा संरचनाओं को गहरा दफनाया गया है।
यहाँ बुरी बदसूरत तरह से है कि मैं लगाव पर प्राप्त कर सकते हैं:
// 'context' is the RequestContext
ServletExternalContext servletExternalContext = (ServletExternalContext) context.getExternalContext();
ActionForm form = (ActionForm) servletExternalContext.getRequest().getAttribute("actionForm");
FormFile file = (FormFile) form.getMultipartRequestHandler().getFileElements().get("file");
मैंने देखा है कि मेरी फार्म पर MultipartRequestHandler
null
है, और मुझे लगता है कि इस का हिस्सा हो सकता समस्या है, लेकिन मैंने इसका लाभ उठाने के लिए CommonsMultipartRequestHandler
के उदाहरण के साथ इसे पॉप्युलेट करने का प्रयास किया है।
file
फ़ील्ड को सही ढंग से पॉप्युलेट करने के लिए मुझे क्या करने की आवश्यकता है?
नहीं आप का उपयोग कर, ActionForm एक्सेसर से फाइल प्राप्त करने में सक्षम होना चाहिए (FormFile) form.getFile()? –