我想在 $_FILES[] 数组周围添加循环。我试过$count= count($_FILES['files'][name])
然后在它周围添加循环 for($i=0; $i<=$count; $i++)
,但它没有给我想要的输出。
我只想从用户上传的文件中添加循环,现在它正在计算表单中可用的所有“文件”。
请告诉我一种仅计算上传文件并遍历它们的方法。
循环$_FILES
数组并使用['name']
内部迭代:
$count = count($_FILES['files'])
for($i=0; $i<=$count; $i++) {
if ($_FILES['files'][$i]['size'])
echo $_FILES['files'][$i]['name']."\n";
}
更简单的是使用 foreach 循环:
foreach($_FILES['files'] as $file) {
if($file['size'])
echo $file['name']."\n";
}
您可以为此使用array_filter。您过滤数组以获取其中包含上传文件的输入。
$uploaded_files = array_filter($_FILES['files'], function($file){
return $file['size'];
});
print count($uploaded_files);
foreach($uploaded_files as $file)
{
//code
}
您可以通过以下方式循环文件:
$count = count($_FILES['files']['tmp_name']);
for($i=0;$i<$count;$i++) {
$file_name = $_FILES['files']['name'][$i];
$file_type = $_FILES['files']['type'][$i];
$file_error = $_FILES['files']['error'][$i];
$file_size = $_FILES['files']['size'][$i];
}
所以我从你的问题中了解到,$_FILES['files']
是上传文件的数组,所以你可以把它当作数组。试试foreach
foreach ($_FILES['files'] as $file){
// now do something with $file
move_uploaded_file($file["tmp_name"],"upload/" . $file["name"]);//e.g uploading it
}