jQuery ajaxForm插件双文件上传

时间:2017-03-06 17:59:09

标签: javascript jquery jquery-file-upload ajaxform malsup-ajax-form

所以我搜索了所有互联网的答案,但没有... 问题是使用ajaxForm malsup插件它会提交我的文件两次。

HTML:

<form id="gallery" enctype="multipart/form-data" action="/upload-gallery.php" method="post">
<input name="images[]" type="file" multiple form="gallery" id="gallery-upload" accept=".jpg,.gif,.jpeg,.png"/>
<input type="submit" value="Upload" form="gallery" class="btn btn-white" />

JS:

var options = {
    clearForm: true,
    beforeSend: function() {

    },
    uploadProgress: function(event, position, total, percentComplete) {
    },
    success: function(response) {
    },
    complete: function(response) {
    },
    error: function(){

    },
    target: $(".gallery-preview")
};
    $("#gallery").ajaxForm(options);

PHP:

var_dump($_FILES);

响应:

enter image description here

我甚至将此代码添加到JS:

$('#gallery').on('submit', function(e) {
        e.preventDefault();
        e.stopPropagation();
        return false;
    });

但结果是一样的。怎么了?是用PHP获取每个第二个文件的唯一方法吗?

1 个答案:

答案 0 :(得分:1)

我可以重现这个问题。看起来表单插件不支持form="gallery"属性。每个具有type="file"属性的输入元素(不仅仅是form)都会被提交两次,即使是在表单之外也是如此。