如何使用 PHP 获取多个文件计数

Posted

技术标签:

【中文标题】如何使用 PHP 获取多个文件计数【英文标题】:How to get multiple file count using PHP 【发布时间】:2020-05-26 16:32:48 【问题描述】:

我想获取多个文件的数量。但我犯了错误。我的错误;

count(): Parameter must be an array or an object that implements Countable

这是我的 html 代码

<form action="index.php" method="POST" enctype="multipart/form-data">
<input type="file" id="fileImage" name="fileImage"
                             class="custom-file-image-input"
                             accept="image/*"
                             multiple="multiple">
        <input type="submit" value="OK" name="send">

</form>

这是我的 PHP 代码

if($_POST['send'])

    print $c = count($_FILES['fileImage']['name']);

如果我这样做 'count($_FILES['fileImage']);' // 响应 => 5 这个错误。

当我删除图像时,我计算错误。

这是我的 js 代码

this.element.parent().on('click', '.custom-file-preview-del', function (e) 
        e.preventDefault();
        let del = $(this);
        let id = del.data('key');
        let index = ref.imageFileArray.findIndex(item => 
            return item.index == id;
        );
        ref.imageFileArray.splice(index, 1);
        del.parent().remove();
        //Array after deleted
        console.log(ref.imageFileArray);
    );

当我在控制台屏幕上看到时,删除过程是真的。

我需要帮助。谢谢问候。

【问题讨论】:

这能回答你的问题吗? how to count number of uploaded files in php 我知道这一点,但如果我输入 '[ ]',当我删除图像时,我拿错了号码 【参考方案1】:

我想在这种情况下,您只上传了一个文件。

您要做的第一件事是确保可以通过更改输入名称来提交多个文件,此时您有name="fileImage",这将只允许提交一个文件,您需要更改名称,使其可以包含多个值,如下所示:

<input type="file" name="fileImage[]"

如果有一个文件,name是一个字符串,如果有多个它是一个数组,所以要做的事情是先检查它是否是一个数组,然后再决定是否数一数。

if($_POST['send'])

    $c = (is_array($_FILES['fileImage']['name']) ? count($_FILES['fileImage']['name']) : 1);
    print $c;

Output when multiple files are uploaded.

【讨论】:

我知道这一点,但如果我输入 '[ ]',当我删除一张图片时,我的计数是错误的。我该怎么办? 您需要详细说明 - 编辑您的问题并发布更多代码并进一步解释此删除问题。

以上是关于如何使用 PHP 获取多个文件计数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 获取 EXIF 快门计数(imageNumber)?

如何使用多个参数获取计数和总和以防万一

如何使用单个查询获取存储在不同变量中的多个表行的计数?

如何在数组php中仅获取非空元素计数

PHP 使用php获取目录中的文件,文件夹,文件计数,文件夹计数

使用php获取目录中的文件文件夹文件计数文件夹计数