Как загрузить в моём случае несколько фото в базу данных?

Ссылка скопирована
1 ответ

Уже несколько дней сижу над этим кодом, как в моём случае загрузить несколько фото в базу данных

У меня есть две таблицы, одна загружается много текст и превью
А вторая таблица где берётся айди с первой таблицы и загружается много фото

Но у меня не работает загрузка много фото
Мой инпут содержит всего 1 название фото, из-за в базу данных и отправляется 1 фото

У меня ещё функционал, предварительного просмотра и тп.

Вот фото моей бд и формы, вот там где загружается много фото, как-бы есть счётчик, но инпут содержит всего 1 название фото и только оно и загружается в базу данных

Как загрузить в моём случае несколько фото в базу данных?

Как загрузить в моём случае несколько фото в базу данных?

Как загрузить в моём случае несколько фото в базу данных?

Вот файл на код
Он сюда не помещается
Главные файлы, это:
Форма: add.php
Скрипт и файл к нему: script.js upload_photo.php
Ссылка удалена модератором.

Дополнительно:

Это задание, а не вопрос.

  • Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
    См.п.3.1 Регламента. Также обратите внимание на п.3.4
  • Ответы:

    Мой инпут содержит всего 1 название фото, из-за в базу данных и отправляется 1 фото

    Для загрузки большого количества файлов из одного инпута используется тег multiple.
    Для того чтобы понимать что приходит в пхп делайте print_r($_FILES); и смотрите что там пришло.
    Естественно для обработки более 1 файла нужен будет цикл, перебирающий $_FILES.

    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Дмитрий К. Ответ

    Для загрузки нескольких фотографий в базу данных вам потребуется создать таблицу, которая будет содержать необходимые поля для хранения изображений. В данном случае, рекомендуется создать таблицу с полями, например, id (идентификатор), name (название файла), type (тип файла), size (размер файла) и image (само изображение в формате BLOB).

    Прежде всего, убедитесь, что ваш сервер настроен на загрузку файлов и работу с базой данных. Далее, создайте HTML форму, которая позволит пользователям выбирать несколько файлов для загрузки:

     

    Теперь создайте скрипт upload.php, который будет обрабатывать загрузку фотографий в базу данных:

     $tmp_name ){
            $file_name = $_FILES['files']['name'][$key];
            $file_size = $_FILES['files']['size'][$key];
            $file_tmp = $_FILES['files']['tmp_name'][$key];
            $file_type = $_FILES['files']['type'][$key];
     
            if($file_size > 2097152){
                $errors[] = 'File size must be less than 2 MB';
            }
     
            if(!in_array($file_type, $extension)){
                $errors[] = 'Only JPEG, PNG, and GIF files are allowed';
            }
     
            if(empty($errors)==true){
                move_uploaded_file($file_tmp, "uploads/".$file_name);
                $uploadedFiles[] = $file_name;
            }
        }
     
        if(empty($errors)){
            foreach($uploadedFiles as $file){
                $imageData = file_get_contents("uploads/".$file);
                $imageData = $connection->real_escape_string($imageData);
                $query = "INSERT INTO images (name, type, size, image) VALUES ('$file', '$file_type', '$file_size', '$imageData')";
                $connection->query($query);
            }
            echo "Files uploaded successfully";
        }else{
            print_r($errors);
        }
    }
    ?>

    $tmp_name ){ $file_name = $_FILES['files']['name'][$key]; $file_size = $_FILES['files']['size'][$key]; $file_tmp = $_FILES['files']['tmp_name'][$key]; $file_type = $_FILES['files']['type'][$key]; if($file_size > 2097152){ $errors[] = 'File size must be less than 2 MB'; } if(!in_array($file_type, $extension)){ $errors[] = 'Only JPEG, PNG, and GIF files are allowed'; } if(empty($errors)==true){ move_uploaded_file($file_tmp, "uploads/".$file_name); $uploadedFiles[] = $file_name; } } if(empty($errors)){ foreach($uploadedFiles as $file){ $imageData = file_get_contents("uploads/".$file); $imageData = $connection->real_escape_string($imageData); $query = "INSERT INTO images (name, type, size, image) VALUES ('$file', '$file_type', '$file_size', '$imageData')"; $connection->query($query); } echo "Files uploaded successfully"; }else{ print_r($errors); } } ?>

    Не забудьте создать папку "uploads" на вашем сервере, куда будут сохраняться загруженные фотографии. После успешной загрузки фотографий, они будут сохранены в базе данных и вы сможете отображать их на вашем сайте.

    Это базовый пример загрузки нескольких фотографий в базу данных. Пожалуйста, учтите, что хранение фотографий в базе данных может быть не самым эффективным способом и может привести к увеличению размера базы данных. В некоторых случаях рекомендуется хранить фотографии на сервере и сохранять только ссылки на изображения в базе данных.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно