PHP$\u文件未使用所有文件输入

PHP$\u文件未使用所有文件输入,php,ajax,wordpress,file,Php,Ajax,Wordpress,File,我必须修补一个PHP邮件解析器。问题是,$\u FILES变量只管理第一个文件输入。按照设置方式,输入如下所示: 。 问题是,下一个输入是input,与名称递增的位置相同,如: 循环$\u文件时,这是当前逻辑: foreach($_FILES as $input) { ... } 在这种情况下,$\u文件只有文件,而第二个文件输入被视为文本,其值为C:\\fakepath\\{filename} 如果不使用像这样的单一输入名称,我如何实现这一点 编辑: $\u文件的var\u dump

我必须修补一个PHP邮件解析器。问题是,
$\u FILES
变量只管理第一个文件输入。按照设置方式,输入如下所示:
。 问题是,下一个输入是input,与名称递增的位置相同,如:

循环
$\u文件时,这是当前逻辑:

foreach($_FILES as $input) {
    ...
}
在这种情况下,
$\u文件
只有
文件,而第二个文件输入被视为文本,其值为
C:\\fakepath\\
{filename}

如果不使用像
这样的单一输入名称,我如何实现这一点

编辑:
$\u文件的
var\u dump
产生以下结果:

array(1) {
    ["files"]=>
        array(5) {
            ["name"]=>
                array(1) {
                    [0]=>
                    string(22) "Checklist-template.pdf"
                }
            ["type"]=>
                array(1) {
                    [0]=>
                    string(15) "application/pdf"
                }
            ["tmp_name"]=>
                array(1) {
                    [0]=>
                    string(14) "/tmp/phpZxkSFz"
                }
            ["error"]=>
                array(1) {
                    [0]=>
                    int(0)
                }
            ["size"]=>
                array(1) {
                    [0]=>
                    int(115033)
            }
        }
    }

编辑#2 添加操作(用于前端和后端):

执行数据的PHP:

function spForm_submit(){
    if(!(is_array($_POST) && defined('DOING_AJAX') && DOING_AJAX)){
        return;
    }
    var_dump( $_FILES );
    die();
}
带有AJAX调用的JS:

$('.sp-form .btn-submit').unbind('click').bind('click', function(e){
    e.preventDefault();
    e.stopPropagation();

    $('input[type="hidden"]', form).each(function(){
        data[$(this).attr('name')] = $(this).val();
    });

    var fd = new FormData(),
        file_inputs = $('input[type="file"]', form);

    $.each($(file_inputs), function(i, obj) {
        $.each(obj.files,function(j,file){
            fd.append('files[' + j + ']', file);
        });
    });

    function appendFormdata(FormData, data, name, cback){
        name = name || '';
        if (typeof data === 'object'){
            $.each(data, function(index, value){
                if (name === ''){
                    appendFormdata(FormData, value, index, cback);
                } else {
                    appendFormdata(FormData, value, name + '['+index+']', cback);
                }
            });
        } else {
            FormData.append(name, data);
        }
    }

    appendFormdata(fd, {form: data}, null);
    fd.append( 'action', 'sp_form_submit' );

    $.ajax({
        url         : window.forms_cback, // AJAX URL
        type        : "POST",

        data        : fd,
        contentType : false,
        processData : false,
        dataType    : "json",
        success     : function(response) {
            // removed for the purpose of the post
        }
    });
});
以及
$\u文件
数组的输出:

array(1) {
    ["files"]=>
        array(5) {
            ["name"]=>
                array(1) {
                    [0]=>
                    string(22) "Checklist-template.pdf"
                }
            ["type"]=>
                array(1) {
                    [0]=>
                    string(15) "application/pdf"
                }
            ["tmp_name"]=>
                array(1) {
                    [0]=>
                    string(14) "/tmp/phpZxkSFz"
                }
            ["error"]=>
                array(1) {
                    [0]=>
                    int(0)
                }
            ["size"]=>
                array(1) {
                    [0]=>
                    int(115033)
            }
        }
    }

正如Barmar所指出的,我的问题不在我的
$\u文件
数组中,而是我的FileData操作中的一个输入错误


你打错了。在
fd.append中('files['+j+']',file)
变量应该是
i
,而不是
j


它应该有所有的文件输入。你能发布
var\u dump($\u文件)
@Barmar我已经将var\u dump添加到了问题中,这是
而不是
的dump。看看你会看到的第一个答案,我相信它会有帮助。你有一个打字错误。在
fd.append中('files['+j+']',file)
变量应该是
i
,而不是
j
array(1) {
    ["files"]=>
        array(5) {
            ["name"]=>
                array(1) {
                    [0]=>
                    string(22) "Checklist-template.pdf"
                }
            ["type"]=>
                array(1) {
                    [0]=>
                    string(15) "application/pdf"
                }
            ["tmp_name"]=>
                array(1) {
                    [0]=>
                    string(14) "/tmp/phpZxkSFz"
                }
            ["error"]=>
                array(1) {
                    [0]=>
                    int(0)
                }
            ["size"]=>
                array(1) {
                    [0]=>
                    int(115033)
            }
        }
    }