<html:file>上传文件错误,-argument type mismatch - </html:file>

时间:2013-01-10 15:29:19

标签: jsp file-upload struts-1

在我的jsp中我有html:file这样的形式,并且我有getter和setter的形式。但是在跑步的时候我有<

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>

仅在提交页面时才收到错误,而我没有上传任何内容。 (上传字段不是必填项。)

2 个答案:

答案 0 :(得分:8)

编码似乎有问题,struts表单不会将提交识别为文件类型,请确保将表单的enctype属性设置为multipart/form-data,方法为post

所以你应该:

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

请注意,这可能会使您的验证陷入困境。有关更多信息,请参阅this主题。

答案 1 :(得分: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>