在Spring 2.5中使用MultipartFile在文件上载中使用null值

时间:2014-04-03 08:54:14

标签: java jsp spring-mvc file-upload

我被某事搞定了。在Spring 2.5框架中,我想使用MultipartFile上传文件。我有一个名为Dosya的类,包括属性MultipartFile multiDosya。我的命令对象是dosya。另外,将上传的文件存储在数据库,sql developer中的BLOB类型中。 在jsp中,我尝试绑定此属性,如下所示:

<spring:bind path="dosya.multiDosya">
  <input class="file" type="file" name="yuklenecekDosya" id="yuklenecekDosya" />
</spring:bind>

在onSubmit上,

 Dosya dosyaObjesi = (Dosya)command;
 MultipartFile yuklenecekDosya = dosyaObjesi.getMultiDosya();

然而,命令对象dosyaObjesi没有问题,

dosyaObjesi.getMultiDosya()

值为空,尽管将在jsp中选择要上传的文件。

在网上搜索后,我发现下面的这一行应该添加到initBinder中。

 binder.registerCustomEditor(byte[].class, new ByteArrayMultipartFileEditor());

但是,我的班级说没有这样的类ByteArrayMultipartFileEditor,但它在spring-2.5.jar中可用。我导入

import org.springframework.web.multipart.*;

可以找出问题所在。有人可以帮帮我吗

提前致谢。

2 个答案:

答案 0 :(得分:1)

您是否指定了表单加密类型(enctype =&#34; multipart / form-data&#34;)?这可能是有时候的原因。

例如:

<form method="post"  name="formName" action="action.htm" commandName="object" enctype="multipart/form-data">

答案 1 :(得分:0)

我已经解决了这个问题。但是,在下面的代码中,一切正常

<input class="file" type="file" name="yuklenecekDosya" id="yuklenecekDosya" />

属性名称必须为${status.expression}。就是这样,name="${status.expression}"就是这样。如果只给出name属性值,那么bind操作正常。 谢谢, 的问候,