我被某事搞定了。在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.*;
可以找出问题所在。有人可以帮帮我吗
提前致谢。
答案 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操作正常。
谢谢,
的问候,