Как записать имена загружаемых файлов в одну строку или столбец БД?

68
16 марта 2022, 23:00

При использовании обычной загрузки файла(без multiple), имя файла записывается в нужный столбец в БД, но при загрузке множества файлов(с multiple) происходит запись названия только последнего файла в нужный столбец БД. Например: загрузили один файл и в БД будет результат: "img_cat_primer.png". Загрузили 2 файла,то в БД будет название только последнего загруженного файла: "img_cat_primer3", вместо "img_cat_primer2 img_cat_primer3". Как можно реализовать запись всех названий?

Вот сам код:

foreach($_FILES['img']['tmp_name'] as $key => $tmp_name) {
            $imgDir = "../../../img/news/";
            $imgName = "img" . "_" . $cat . "_" . time() . "_" . basename($_FILES["img"]["name"][$key]);
            $imgFile = $imgDir . $imgName;
            $imgUpload = 1;
            $imgFileType = strtolower(pathinfo($imgFile, PATHINFO_EXTENSION));
            if ($imgFileType != "jpg" && $imgFileType != "png" && $imgFileType != "jpeg") {
                echo "Поддерживаются только форматы: png, jpg, jpeg!";
                $imgUpload = 0;
            }
            if ($imgUpload == 0) {
                echo "Файл не был загружен.";
            } else {
                if (move_uploaded_file($_FILES["img"]["tmp_name"][$key], $imgFile)) {
                    echo "Файл ". basename( $_FILES["img"]["name"][$key]). " был загружен.";
                } else {
                    echo "Ошибка при загрузке!";
                }
            }
        }
$sql = "INSERT into news (title, text, cat, pimg, img, vid, time, admin) VALUES ('$title', '$text', '$cat', '$pimgName', '$imgName', '$vidName', '$time', '$admin')";
Answer 1

Например можно так:

$Images_sql = [];
foreach($_FILES['img']['tmp_name'] as $key => $tmp_name) {
            $imgDir = "../../../img/news/";
            $imgName = "img" . "_" . $cat . "_" . time() . "_" . basename($_FILES["img"]["name"][$key]);
            $imgFile = $imgDir . $imgName;
            $imgUpload = 1;
            $imgFileType = strtolower(pathinfo($imgFile, PATHINFO_EXTENSION));
            if ($imgFileType != "jpg" && $imgFileType != "png" && $imgFileType != "jpeg") {
                echo "Поддерживаются только форматы: png, jpg, jpeg!";
                $imgUpload = 0;
            }
            if ($imgUpload == 0) {
                echo "Файл не был загружен.";
            } else {
                if (move_uploaded_file($_FILES["img"]["tmp_name"][$key], $imgFile)) {
                    echo "Файл ". basename( $_FILES["img"]["name"][$key]). " был загружен.";
                    $Images_sql[] = $imgName;
                } else {
                    echo "Ошибка при загрузке!";
                }
            }
        }
$imgName = serialize($Images_sql);
$sql = "INSERT into news (title, text, cat, pimg, img, vid, time, admin) VALUES ('$title', '$text', '$cat', '$pimgName', '$imgName', '$vidName', '$time', '$admin')";
READ ALSO
laravel @error('name') {{$message}}

laravel @error('name') {{$message}}

Есть форма, в которой делаю валидацию данных:

81
Фильтр цен от минимального до максимального. laravel

Фильтр цен от минимального до максимального. laravel

Всем доброго дня! Не получается сделать фильтр от минимального до максимального значенияУ меня есть контроллер в котором я сравниваю цену...

83
Как в Google Sheets API писать в разные диапазоны?

Как в Google Sheets API писать в разные диапазоны?

Пытаюсь разобраться в Google Sheets API на PHP 7В общем, как правильно заполнить range, чтобы получилось так?

66
Как понять логику?

Как понять логику?

Читал статью «почему не любят php»И там был пример, приводился этот код:

89