2013-01-10 38 views
5

मेरे जेएसपी में मेरे पास html:file है, और इस रूप में मेरे पास गेटर और सेटर है। लेकिन जब चल रहा है मुझे मिल गया

<html:file> अपलोड फ़ाइल त्रुटि, -र्गमेंट प्रकार मिस्चैच-

Caused by: java.lang.IllegalArgumentException: Cannot invoke com.app.app.struts.forms.MyForm.setDocfile on bean class 'class com.app.app.struts.forms.MyForm' 
    - argument type mismatch - had objects of type "java.lang.String" but expected signature "org.apache.struts.upload.FormFile" 

jsp:

<html:file property="docfile" styleId="docfile" size="45" ></html:file> 

केवल त्रुटि मिल रही है जब पेज प्रस्तुत करने और मैं कुछ भी नहीं अपलोड करने कर रहा हूँ। (अपलोड फ़ील्ड एक आवश्यक दायर नहीं है।)

उत्तर

8

यह एन्कोडिंग के साथ समस्या प्रतीत होता है, स्ट्रैट्स फॉर्म फ़ाइल के प्रकार के रूप में सबमिट को पहचान नहीं पाता है, फॉर्म की enctype विशेषता multipart/form-data पर सेट करना सुनिश्चित करें और विधि post के रूप में।

तो तुम होना चाहिए:

<html:form action="/somePath" enctype="multipart/form-data" method="post"></html:form> 

ध्यान रखें यह कर सकता है आप अपने मान्यता के साथ गंदगी चीजें हैं जो। अधिक के लिए this धागा देखें।

+0

एक लील खोज मैंने देखा _Use 'बहुखण्डीय/फार्म डेटा' के बाद जब भी आप किसी राशि _ तो मैं इसकी न केवल लगता है स्ट्रैट्स में, –

+0

यह होना चाहिए। मुझे यकीन है कि यह एक टाइपो है :) – Cybermonk

0

इस अपनी परियोजना के लिए उनकी निर्भरता जोड़ें:

<dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.2.1</version> 
    </dependency> 

    <dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>1.4</version> 
    </dependency>