如何在php中计算上传文件的数量

Posted

技术标签:

【中文标题】如何在php中计算上传文件的数量【英文标题】:how to count number of uploaded files in php 【发布时间】:2021-10-25 02:21:36 【问题描述】:

如何计算上传文件的数量? 这是我的表格:

<div id="dragAndDropFiles" class="uploadArea">
        <h1>Drop Images Here</h1>
    </div>
    <form id="sfmFiler" class="sfmform" method="post" enctype="multipart/form-data">
        <input type="file" name="file" id="file" multiple />
        <input type="submit" name="submitHandler" id="submitHandler" class="buttonUpload" value="Upload">
    </form>

这是上传文件的php部分:

if($_SERVER['REQUEST_METHOD'] == "POST") 
    $tmpFilePath = $_FILES['file']['tmp_name'];
    $newFilePath = $dir.'/' . $_FILES['file']['name'];
    if(move_uploaded_file($tmpFilePath, $newFilePath)) 
      echo "xxx files are successfully uploaded";
    
 

【问题讨论】:

试试这个:count($_FILES['file']['name']) echo count($_FILES); @Saty 这也总是给我第一名 文件名中需要数组为name="file[]" 【参考方案1】:

在这段代码中你只得到一个文件,这就是你得到计数结果1的原因。如果改变你的输入文件名,比如“file[]”

  <input type="file" name="file[]" id="file" multiple />

然后使用下面的行代码,你会得到你想要的结果。因为它需要一个数组来保存输入数据。

 <?php echo count($_FILES['file']['name']); ?>

谢谢,我尝试在我的系统中得到结果。

【讨论】:

我可能错了,但 count 将始终为 1 或更大,除非参数为 NULL,因此即使没有上传文件,count() 仍然等于 1【参考方案2】:

朋友是正确的。上面的答案总是返回 1。

试试:

echo count(array_filter($_FILES['file']['name']))

无论如何都为我工作。

_t

【讨论】:

【参考方案3】:

检查这个答案

<?php echo count($_FILES['file']['name']); ?>

php multiple file uploads get the exact count of files a user uploaded and not the count of all input fields in the array

【讨论】:

如果你回答比说清楚。 op需要完全的支持。继续。【参考方案4】:

使用array_filter 函数就可以了

试试

$countfiles = count(array_filter($_FILES['file']['name']));

NULL 返回 0,上传 1 个文件返回 1,以此类推

【讨论】:

以上是关于如何在php中计算上传文件的数量的主要内容,如果未能解决你的问题,请参考以下文章

PHP通过循环上传多个图像

计算上传文件的数量

文件上传知多少,PHP面试学到老,虽然够用也挺好,知识体系也重要

文件上传知多少,PHP面试学到老,虽然够用也挺好,知识体系也重要

如何在 PHP 中编写文件上传测试?

在php中如何上传视频