Загрузите несколько изображений с помощью PHP и поместите их в базу данных MYSQL

0

Изменение: решено! кредиты @kaylined и @uli. Я отредактировал код на случай, если кто-то в будущем столкнется с такой же проблемой при одновременном загрузке нескольких изображений и сохранении его в базе данных MYSQL.

Я пытаюсь создать загрузку нескольких изображений сразу скрипта с PHP и MYSQL. но сценарий работает неправильно. Я не знаю, где я делаю неправильно. возможно, вы, ребята, могли бы помочь. вот мой код:

PS: изображения загружаются успешно, имя файла также успешно сохраняется в базе данных. но переменная "slug" хранится в базе данных как "Array",

Форма ввода

<form method="POST" action="action-add-images.php" enctype="multipart/form-data">
    <input type="hidden" name="slug" value="<?php echo $_GET['slug']; ?>">
    <label>Upload Files</label>
    <input required type="file" name="image[]" class="form-control-file" multiple>
    <button type="submit" class="btn btn-block btn-primary my-3 ">Upload Images</button>
</form>

Файл действия

<?php
include "../connect.php";
    foreach ($_FILES['image']['name'] as $key => $name){
        $newFilename = date('YmdHis',time()).mt_rand().'.jpg';
        move_uploaded_file($_FILES['image']['tmp_name'][$key], '../img/' . $newFilename);
        $image = '../img/' . $newFilename;
        $slug = $_POST['slug'];
        mysqli_query($conn,"INSERT INTO product_image (slug,image) values ('$slug','$newFilename')");
    }
    header('location:product.php');
?>
Теги:

1 ответ

0
Лучший ответ

Slug сохраняет как массив, потому что это массив.

$slug = $_POST['slug'];

должен решить вашу проблему, предполагая, что элементы slug добавлены в том же порядке, что и ваши файлы.

Согласно комментариям, указанный выше PHP был исправлен, а фиксированный HTML ниже - все, что я сделал, это удалить директиву массива из ввода:

<form method="POST" action="action-add-images.php" enctype="multipart/form-data">
<input type="hidden" name="slug" value="<?php echo $_GET['slug']; ?>">
<label>Upload Files</label>
<input required type="file" name="image[]" class="form-control-file" multiple>
<button type="submit" class="btn btn-block btn-primary my-3 ">Upload Images</button>

  • 0
    Slug теперь хранится в базе данных, но когда я загрузил 2 изображения, только 1 запись имеет запись Slug. другой пустой.
  • 0
    @RadenOctavian Должны ли оба изображения иметь одинаковый слаг? У вас есть только один вход для слаг в вашем HTML.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню