在表单提交后,有没有办法获取名为upload []的文件上传输入字段的键?
<input type="file" name="upload[3]" />
<input type="file" name="upload[7]" />
<input type="file" name="upload[10]" />
答案 0 :(得分:7)
array_keys会为您提供所有密钥。
$keys = array_keys($_FILES["upload"]);
答案 1 :(得分:2)
使用$_FILES["upload"]
获取密钥。
更多information
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="upload[3]" />
<input type="file" name="upload[7]" />
<input type="file" name="upload[10]" />
<input type="submit" />
</form>
<?php
echo "<pre>"; print_r($_FILES['upload']);
}
?>
输出
Array
(
[name] => Array
(
[3] => Chrysanthemum.jpg
[7] =>
[10] =>
)
[type] => Array
(
[3] => image/jpeg
[7] =>
[10] =>
)
[tmp_name] => Array
(
[3] => D:\xampp\tmp\phpD249.tmp
[7] =>
[10] =>
)
[error] => Array
(
[3] => 0
[7] => 4
[10] => 4
)
[size] => Array
(
[3] => 879394
[7] => 0
[10] => 0
)
)
答案 2 :(得分:2)
由于您正在使用数组命名黑客,请注意$ _FILES是以令人难以置信的方式构建的,您将获得此结构:
$_FILES = array(
'upload' =>
'name' => array(
'3' => 'name of file #3',
'7' => 'name of file #7',
etc...
),
'type' => array(
'3' => 'mime type of file #3',
etc...
etc..
);
要检索3,7等密钥,您需要array_keys($_FILES['upload'])
不知道PHP开发者当天吸烟的是什么,但$_FILES['upload'][3]['name']
应该是结构...所有文件的数据都在单个子阵列,不分布在6个不同的阵列中。