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