Имеется такой код.
<form method="post" action="upload-page.php" enctype="multipart/form-data">
<input name="filesToUpload[]" id="filesToUpload" type="file" multiple="" />
<input type="submit" name="Stexelnkarnery.">
</form>
Содеримое uploader-page.php
<?php
if(count($_FILES['uploads']['filesToUpload'])) {
foreach ($_FILES['uploads']['filesToUpload'] as $file) {
echo $file;
}
} ?>
После нажатия на кнопку вылезает ошибка
count(): Parameter must be an array or an object that implements Countable in upload-page.php on line 3
В идеале должна получится кнопка с которой мы можем загуризть 2 или больше картинок сразу, и все они будут падать в какую-то директорию .
Вы вызываете метод count(), который ждет от вас объект или же массив. В вашем случае вы передаете ему null, потому что вы передаете $_FILES['uploads']['filesToUpload'], Если вы задебажите код, то у вас будет так:
var_dump($_FILES['uploads']['filesToUpload']); // null
Вы передаете null в метод count(). Получается интерпретатор видит это так:
if(count(null)) {
// do something...
}
Вы создали форму, в которой указали имя input, в которое будет происходить загрузка файлов(момент: должно быть multiple="multiple"):
<input name="filesToUpload[]" id="filesToUpload" type="file" multiple="multiple" />
И ваши файлы будут доступны с суперглобальном массиве $_FILES['filesToUpload'].
Для того чтобы вам вывести имена загруженных файлов можете сделать так:
if ($_FILES['filesToUpload']) {
foreach ($_FILES['filesToUpload']['name'] as $file) {
echo $file . "<br>";
}
}
Для того чтобы сохранить в директорию можете посмотреть данный ответ, я уже рассказывал как это сделать по шагам, ссылка: Как правильно хранить изображения на сервере?
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости