在SpringWebFlow流中使用uploadify
这是我在这里的第一个问题,所以如果我做错了什么,请给我指出正确的方向。 在SpringWebFlow中尝试使用基于UploadifyFlash的多文件上传器时,我遇到了一些困难。以下是本案的详细说明: 以下是我正在使用的库的版本: SpringWebFlow 2.3.2 SpringWeb3.2.1 springwebmvc 3.2.1 上传v3.2 commons文件上传1.2.2 通用io 2.4 通用编解码器1.8 ApacheTiles 3.0.1 webflow配置 控制器处理/文件上载url:在SpringWebFlow流中使用uploadify,spring,uploadify,spring-webflow,apache-commons-fileupload,modelattribute,Spring,Uploadify,Spring Webflow,Apache Commons Fileupload,Modelattribute,这是我在这里的第一个问题,所以如果我做错了什么,请给我指出正确的方向。 在SpringWebFlow中尝试使用基于UploadifyFlash的多文件上传器时,我遇到了一些困难。以下是本案的详细说明: 以下是我正在使用的库的版本: SpringWebFlow 2.3.2 SpringWeb3.2.1 springwebmvc 3.2.1 上传v3.2 commons文件上传1.2.2 通用io 2.4 通用编解码器1.8 ApacheTiles 3.0.1 webflow配置 控制器处理/文件上
@RequestMapping(value = "/fileUpload", method = RequestMethod.POST)
public @ResponseBody
String Uploadcreate(UploadBean uploadBean, BindingResult result, HttpServletRequest request, HttpServletResponse response,
MultipartRequest multipartRequest) {
System.out.println("started uploading..");
.
.
.
}
和上传bean:
public class UploadBean implements Serializable{
private static final long serialVersionUID = -4487086999401144339L;
private CommonsMultipartFile filedata;
private String name;
private String dummy;
public CommonsMultipartFile getFiledata() {
return filedata;
}
public void setFiledata(CommonsMultipartFile filedata) {
this.filedata = filedata;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDummy() {
return dummy;
}
public void setDummy(String dummy) {
this.dummy = dummy;
}
}
这里的问题是UploadBean的文件数据永远不会被uploadify提交填充。所有字段都是空的。(虚拟字段仅用于测试目的)
使用流范围变量(flowScope.uploadBean)作为表单modelAttribute值是否错误?还是禁止在webflow流中使用ajax提交(uploadify通过ajax调用AFAIK提交文件输入)
顺便说一下,我可以在spring纯mvc环境中使用uploadify,如下所述:
可能我做了一些与SpringWebFlow相关的错误,所有的帮助都将不胜感激,提前感谢 解决了这个问题,这是由于另一个多部分配置,如下所示: 我已经实现了WebApplicationInitializer接口来初始化我的web应用程序(即没有web.xml),在这个实现中有一行 setMultipartConfig(新的MultipartConfigElement(null、最大文件大小、最大上传大小、最大请求大小、文件大小、阈值)) 这个MultipartConfigElement(来自javax.servlet包)设置了一些大小限制,并且不知何故干扰了spring的文件上传机制。我认为这与: 请看balusC对第二个(已接受)答案的评论。 不管怎样,在注释掉上面的行之后,它就如预期的那样工作了。 希望这能帮助别人,谢谢
<div class="createAd2-fileUploadArea">
<form:form modelAttribute="uploadBean" method="POST" enctype="multipart/form-data">
<input id="file-upload" type="file"/>
<input name="dummy" value="someValue" type="text">
</form:form>
<span class="createAd2-startUpload">Yüklemeyi Başlat</span>
</div>
$('#file-upload').uploadify(
{
'swf' : fileUploadScriptBaseUrl + '/uploadify.swf',
'uploader' : '/fileUpload',
'multi' : true,
'auto' : false,
'cancelImg' : imageBaseUrl + '/uploadify-cancel.png',
'buttonText' : 'Resim Ekle',
'fileSizeLimit' : '120KB',
'fileTypeExts' : '*.gif; *.jpg; *.jpeg; *.png',
'uploadLimit' : 10,
.
.
.
});
@RequestMapping(value = "/fileUpload", method = RequestMethod.POST)
public @ResponseBody
String Uploadcreate(UploadBean uploadBean, BindingResult result, HttpServletRequest request, HttpServletResponse response,
MultipartRequest multipartRequest) {
System.out.println("started uploading..");
.
.
.
}
public class UploadBean implements Serializable{
private static final long serialVersionUID = -4487086999401144339L;
private CommonsMultipartFile filedata;
private String name;
private String dummy;
public CommonsMultipartFile getFiledata() {
return filedata;
}
public void setFiledata(CommonsMultipartFile filedata) {
this.filedata = filedata;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDummy() {
return dummy;
}
public void setDummy(String dummy) {
this.dummy = dummy;
}