3

重複の可能性:
複数のフィールドがある場合の $_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配列である)にする必要があることを示唆しています。

4

1 に答える 1