使用PHP上传多个图像并将其放入MYSQL数据库

时间:2018-02-24 05:13:23

标签: php mysql

编辑:解决了!归功于@kaylined和@uli。我编辑了代码,以防将来有人在上传多个图像并将其存储到MYSQL数据库中时遇到同样的问题。

我正在尝试使用PHP和MYSQL一次创建上传多个图像。但剧本运作不佳。我不知道我哪里做错了。也许你们可以提供帮助。这是我的代码:

P.S:图像上传成功,文件名也成功存储到数据库。但是" slug"变量作为"数组"

存储到数据库

输入表单

<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 :(得分: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>