Как получить несколько файлов, используя PHP - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу получить несколько файлов. Но я принимаю ошибку. Моя ошибка;

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);
    });

когда я вижу на экране консоли, процесс удаления - это правда.

Мне нужна помощь. С уважением.

1 Ответ

0 голосов
/ 11 февраля 2020

Я полагаю, что в этом случае у вас есть только один загруженный файл.

Первое, что вам нужно сделать, - это убедиться, что несколько файлов могут быть отправлены путем изменения имени вашего ввода в данный момент. у вас есть name="fileImage", это позволило бы отправить только один файл, вам нужно изменить имя, чтобы оно могло содержать несколько значений, например:

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

Если существует один файл, name будет строкой, если их кратно, это будет массив, поэтому нужно сначала проверить, является ли он массивом, а затем решить, считать его или нет.

if($_POST['send'])
{
    $c = (is_array($_FILES['fileImage']['name']) ? count($_FILES['fileImage']['name']) : 1);
    print $c;
}

Вывод при загрузке нескольких файлов.

...