php - 具有多个字段时 $_FILES 数组的奇怪格式

标签 php file-upload forms

我有一个表单,其中包含一些这样的字段:

<input type="file" name="images[]" />
<input type="file" name="images[]" />
<input type="file" name="images[]" />
<input type="file" name="images[]" />

我希望我会做这样的事情:

Array
(
    [images] => Array
        (
            [0] => Array
                (
                    [name] => test.jpg
                    [type] => image/jpeg
                    [tmp_name] => /tmp/nsl54Gs
                    [error] => 0
                    [size] => 1715
                )

            [1] => Array
                (
                    [name] => test.jpg
                    [type] => image/jpeg
                    [tmp_name] => /tmp/nsl54Gs
                    [error] => 0
                    [size] => 1715
                )

            [2] => Array
                (
                    [name] => test.jpg
                    [type] => image/jpeg
                    [tmp_name] => /tmp/nsl54Gs
                    [error] => 0
                    [size] => 1715
                )

            [3] => Array
                (
                    [name] => test.jpg
                    [type] => image/jpeg
                    [tmp_name] => /tmp/nsl54Gs
                    [error] => 0
                    [size] => 1715
                )
        )
)

但是我得到这样的结果:

Array
(
    [images] => Array
        (
            [name] => Array
                (
                    [0] => test.jpg
                    [1] => test.jpg
                    [2] => test.jpg
                    [3] => test.jpg
                )

            [type] => Array
                (
                    [0] => image/jpeg
                    [1] => image/jpeg
                    [2] => image/jpeg
                    [3] => image/jpeg
                )

            [tmp_name] => Array
                (
                    [0] => /tmp/nsl54Gs
                    [1] => /tmp/nsl54Gs
                    [2] => /tmp/nsl54Gs
                    [3] => /tmp/nsl54Gs
                )

            [error] => Array
                (
                    [0] => 0
                    [1] => 0
                    [2] => 0
                    [3] => 0
                )

            [size] => Array
                (
                    [0] => 1715
                    [1] => 1715
                    [2] => 1715
                    [3] => 1715
                )

        )

)

如何以我期望的形式获取数组?

最佳答案

这是完全正常的格式,一直都是这样。如果你想要一个不同的结构,你可以在你的应用程序中转换它,就像这样:

<?php

$another_format = array();
for ($i=0; $i<count($_FILES['images']['name']); $i++){
    $another_format[$i] = array(
        'name' => $_FILES['images']['name'][$i],
        'type' => $_FILES['images']['type'][$i],
        'tmp_name' => $_FILES['images']['tmp_name'][$i],
        'error' => $_FILES['images']['error'][$i],
        'size' => $_FILES['images']['size'][$i]
    );
}

?>

祝你好运!

关于php - 具有多个字段时 $_FILES 数组的奇怪格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4818275/

相关文章:

php - $_FILES[] 在 jQuery 生成的表单中为空

php - 如何修复数据库连接错误

php - Propel ORM - 连接不相关的表

php - PHP 中的 MYSQL 查询匹配日期范围的记录

jquery - 禁用提交按钮,直到选择上传文件

php - WordPress上传图片报错 "file is empty"

flutter - 在Flutter中使用dio上传多部分图像文件的问题

ios - 自定义渲染器在 iOS + 库中不起作用

php - 如何显示来自其他站点的 RSS 提要

php - 一个 Web 应用程序中的多个数据库连接是好是坏?