Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SpringWebFlow流中使用uploadify_Spring_Uploadify_Spring Webflow_Apache Commons Fileupload_Modelattribute - Fatal编程技术网

在SpringWebFlow流中使用uploadify

在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配置 控制器处理/文件上

这是我在这里的第一个问题,所以如果我做错了什么,请给我指出正确的方向。 在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:

@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;
}