如何统计PHP中上传的文件?

How to count uploaded files in PHP?


我最新的问题是计算上传的文件。我已经使用 count($_FILES) 完成了此操作,但这是向我显示问题的地方。
它只显示了 3 个文件,这真的很奇怪,因为我认为它完美无缺。
但说到点子上。这是PHP中的代码,以及HTML中的上传文件代码。查看计数函数时,您会发现我还提到了文件名。在我的例子中,这无关紧要,因为即使我只输入 count($_FILES) 它也不起作用。我也试过 var_dump($_FILES); 但它只显示 1 个文件,而不是更多。

$i = 0;
$target = "gallery/";
for($i=0; $i<=count($_FILES['ufile']); $i++) {
        if(($_FILES['ufile']['type'][$i]== 'image/jpeg')
        ||($_FILES['ufile']['type'][$i]== 'image/gif')
        ||($_FILES['ufile']['type'][$i]== 'image/png')
        &&($_FILES['ufile']['size'][$i]<5242880)
        &&($_FILES['ufile']['error'][$i] == 0)) {
                $image = $_FILES['ufile']["name"][$i];
                $temp = explode(".", $_FILES['ufile']["name"][$i]);
                $gallery_img = $i . '_' .round(microtime(true)) . '.' . end($temp) ; //gallery is ready
                $final_gallery[$i] = $gallery_img;
                $tmpFilePath = $_FILES['ufile']['tmp_name'][$i];
                move_uploaded_file($tmpFilePath, $target . $gallery_img);
    }
}

和HTML:

IMAGES TO GALLERY:<input name="ufile[]" type="file" id="ufile[]" multiple><br><br>

试试这个 count($_FILES['ufile']['name'])

伙计!这应该适合你

for($i=0; $i<=count($_FILES); $i++) {

你应该试试这个

for ($i=0; $i <= count($_FILES['ufile']['name']); $i++)

count($_FILES) 在这种情况下将显示 1,因为您只有 type = file 的输入。如果您要添加另一个输入文件类型,如下所示,它将显示 2.

//count($_FILES) will be 2 in this case.
<form method="post" enctype="multipart/form-data">
    <input name="ufile[]" type="file" id="ufile[]" multiple><br><br>
    <input name="extrafile" type="file" id="udfile[]" multiple><br><br>
    <input type="submit" name="submit" value="upload">
</form>

现在每个发布时输入的文件都有5个元素,分别是nametypetmp_nameerrorsize。因此,如果您执行 count($_FILES['ufile']),它将始终显示 5.

所以在这种情况下计算选择上传的文件数量的正确答案是 count($_FILES['ufile']['name'])

?>
<form method="post" enctype="multipart/form-data">
    <input name="ufile[]" type="file" id="ufile[]" multiple><br><br>
    <input type="submit" name="submit" value="upload">
</form>