具有多个字段时$ _FILES数组的奇怪格式 [英] Weird format of $_FILES array when having multiple fields

查看:146
本文介绍了具有多个字段时$ _FILES数组的奇怪格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 < input type =filename =images []/> 
< input type =filename =images []/>
< input type =filename =images []/>
< input type =filename =images []/>

我希望我会这样做:


$ b $数组

[images] =>数组

[0] =>数组

[name] => test.jpg
[type] => image / jpeg
[tmp_name] => / tmp / nsl54Gs
[error] => ;
[size] => 1715


[1] =>数组

[name] => test。 jpg
[type] => image / jpeg
[tmp_name] => / tmp / nsl54Gs
[error] => 0
[size] => 1715

$ b [2] =>数组

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


[3] =>数组

[name] => test.jpg
[type] => image / jpeg
[tmp_name] => / tmp / nsl54Gs
[错误] => 0
[size] => 1715



但是我得到这样的东西:

  Array 
($数组

[name] =>数组

[0] => test.jpg
[1] ] => test.jpg
[2] => test.jpg
[3] => test.jpg


[type] = >数组

[0] => image / jpeg
[1] => image / jpeg
[2] => image / jpeg
[3] => image / jpeg


[tmp_name] =>数组

[0] => / tmp / nsl54Gs
[1] => /tmp/nsl54Gs
[2] => /tmp/nsl54Gs
[3] => / tmp / nsl54Gs


[error] =>数组

[0] => 0
[1] => 0
[2] => 0
[3] => 0


[size] =>数组

[0] => 1715
[1] => 1715
[2] => 1715
[3] => 1715







<如何获得我想要的形式的数组?

解决方案

这是完全正常的格式,它总是像那。如果你想要一个不同的结构,你可以在你的应用程序中进行转换,如下所示:

 <?php 

$ another_format = array();
($ 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]
);
}

?>

祝您好运!


I have a form that has some fields like this:

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

I would expect i would do something like this:

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
                )
        )
)

But i get something like this:

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
                )

        )

)

How do I get the array in the form I expect?

解决方案

This is completely normal format, it always has been like that. If you want a different structure, you can transform it in your application, like this:

<?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]
    );
}

?>

Good luck!

这篇关于具有多个字段时$ _FILES数组的奇怪格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆