मुझे पता है कि प्राइमफ़ेस का उपयोग करके फ़ाइल अपलोड कैसे करें या टॉमहॉक का उपयोग करके, मैं अपाचे कॉमन्स फ़ाइल अपलोड का उपयोग करके फ़ाइल अपलोड करने का प्रयास कर रहा हूं और अब तक मुझे सड़क का थोड़ा सा हिस्सा मिल रहा है ब्लॉक। भले ही मेरा फॉर्म multipart/form-data
का उपयोग करता है, जब मैं अपना फॉर्म जमा करता हूं, तो सामग्री प्रकार application/x-www-form-urlencoded
बन जाता है। यहाँ मेरी कोडअपाचे कॉमन्स फ़ाइल के साथ फ़ाइल अपलोड करने के लिए जेएसएफ कैसे प्राप्त करें
<h:body>
<h:form enctype="multipart/form-data">
Upload File
<input type="file" name="file"/>
<p:commandButton value="Submit" action="#{viewBean.submit}"/>
</h:form>
</h:body>
यहाँ है मेरी ViewBean
@ManagedBean
@ViewScoped
public class ViewBean implements Serializable {
public void submit() {
String url = "/FileUploadServlet";
FacesContext context = FacesContext.getCurrentInstance();
try {
String contentType = context.getExternalContext().getRequestContentType();
context.getExternalContext().dispatch(url);
} catch (Exception e) {
logger.log(Level.SEVERE, "Exception when calling Servlet", e);
} finally {
context.responseComplete();
}
}
}
तो जब मैं सामग्री के ऊपर टाइप प्रिंट करने का प्रयास है, यह application/x-www-form-urlencoded
से पता चला है। अगर मैं अपने p:commandButton
को ajax="false"
शब्दों में कहें, तो submit()
विधि भी लागू नहीं किया गया है, लेकिन अगर मैं enctype="multipart/form-data"
बाहर ले (अभी भी ajax="false"
रखने), तो submit()
शुरू हो जाती है, लेकिन यह मल्टीपार्ट नहीं है, यह application/x-www-form-urlencoded
है, इसलिए Apache Commons fileupload एक अपवाद फेंक चूंकि यह मल्टीपार्ट नहीं है। ऐसा लगता है जो भी मैं करता हूं, मुझे लगता है कि मल्टीपार्ट आवश्यकता नहीं है। कृपया
बहुत बहुत धन्यवाद। यह सारी जानकारी जानना बहुत अच्छा है। –
आपका स्वागत है। – BalusC
@ बालससी मैंने ऐसा किया जैसा आपने कहा है 'फ़िल्टर' बनाने के लिए कहा है, लेकिन 'h: form' में' enctype = "multipart/form-data" है, तो कार्रवाई विधि फ़ायरिंग नहीं कर रही है। मैं जेएसएफ 1.2 में हूं। क्या आप कृपया मुझे बता सकते हैं कि यह क्यों हो रहा है? मैंने सवाल पूछा है [यहां] (http://stackoverflow.com/questions/14242293/hcommandbutton-is-not-firing-action-if-the-hform-has-enctype-multipart-form-d) –