多文件上传不会向服务器发送任何数据

时间:2018-02-07 14:33:41

标签: javascript php jquery

我想上传多个文件上传。 我在客户端有这个:

        $(document).on( "click", ".save-button", function () {

            var data = new FormData();
            data.append('title', $(this).parent().parent().find("#title_place").val());

            $.each($(this).parent().parent().find("input[type='file']")[0].files, function(i, file) {
                data.append('file', file);
            });

            $.ajax({type: "POST",
                url: 'save_view.php',
                data: data,
                success : viewSaveCallBack,
                cache: false,
                contentType: false,
                processData: false,
            });
        });

我检查了debuger中的所有数据,它运行正常。为了看到这一点,我显示了

的值
 $(this).parent().parent().find("#title_place").val()

并且

$(this).parent().parent().find("input[type='file']")[0].files

然后,当我在服务器端尝试var_dump $ _FILES或$ _POST时,它是空的。 调试器也是如此。 enter image description here enter image description here

我也试过

                data.append('files[]', file);

当我尝试上传单个文件(在另一个输入中,不是完全相同的代码)时,这样可以正常工作。

输入的html就是这个:

        <input type=\"file\" multiple directory webkitdirectory allowdirs class=\"form-control input\" id=\"marzipano\">

它会动态添加到DOM中。

当我上传单个文件时,工作正常。

它不是Sending multipart/formdata with jQuery.ajax的副本,因为我已经使用了FormData对象,而且我的代码与答案相同。它仍然没有按预期工作。

2 个答案:

答案 0 :(得分:0)

尝试:

var files = $(this).parent().parent().find("input[type='file']")[0].files;

for(var i=0; i<files.length; i++) {
   data.append('file['+i+']', files[i]);
}

在PHP中,您可以通过$_POST["file"]

获取文件

答案 1 :(得分:0)

我的代码实际上正在运行,问题是php.ini中的post_max_size太低了。