可能重复:
具有多个字段时 $_FILES 数组的奇怪格式
我正在使用jQuery File Upload将文件上传到我的服务器。
这是我的处理程序:
$('#fileupload').fileupload({
    url: 'api/combox_upload.php',
    dataType: 'json',
    done: function (e, data) {
        console.log(data);
        $.each(data.result.files, function (index, file) {
            console.log(file);
            $('<p/>').text(file.name[0]).appendTo($file_uploads);
        });
    }
});
运行此文件:
<?php
header('Content-type: application/json');
echo json_encode($_FILES);
但$_FILES我得到的数组看起来像这样:
{"files":{"name":["Screenshot from 2012-12-10 11:41:35.png"],"type":["image\/png"],"tmp_name":["\/var\/tmp\/phpHfnnt2"],"error":[0],"size":[180546]}}
即,files是一个对象而不是文件数组,并且每个属性(名称、类型等)都是一个数组而不是一个字符串。
我认为它们是“并行数组”,即如果上传了 2 个文件,则每个文件中有 2 个条目。
但这不是通常的 PHP$_FILES数组的外观。jQuery File Upload 搞砸了吗?有没有办法恢复正常结构?
他们的小例子,
        $.each(data.result.files, function (index, file) {
            $('<p/>').text(file.name).appendTo(document.body);
        });
建议它应该采用我期望的格式(files作为一个数组)。