【问题标题】:How to Save multiple images on database using PHP Script如何使用 PHP 脚本在数据库中保存多个图像
【发布时间】:2016-07-01 13:23:47
【问题描述】:

在我的自定义 CMS 上,

我成功地将管理表单中的所有值保存到数据库中。

所有这些都有一个值,但是多个元素呢?

如何保存包含多个图像的输入文件?

这是我添加帖子页面的完整代码:

<?php
if(isset($_POST['submit'])) {
    $title_bg = $_POST['title_bg'];
    $title_en = $_POST['title_en']; 
    $body_bg = $_POST['body_bg'];
    $body_en = $_POST['body_en'];   
    $image = $_FILES['image']['name'];
    $image_tmp = $_FILES['image']['tmp_name'];  

    move_uploaded_file($image_tmp, '../uploads/' . $image);

    $status = $_POST['status'];


    $query = "INSERT INTO posts(title_bg, title_en, body_bg, body_en, image, status, created) ";
    $query .= "VALUES('$title_bg', '$title_en', '$body_bg', '$body_en', '$image', '$status', now())";

    $create_post = mysqli_query($connection, $query); 

    header("Location: posts.php");  
} 
?>

<form action="" method="post" enctype="multipart/form-data">
    <div class="form-item">
        <label for="title_bg">Post title BG</label>
        <input type="text" name="title_bg">
    </div>

    <div class="form-item">
        <label for="title_en">Post title EN</label>
        <input type="text" name="title_en">
    </div>  

    <div class="form-item">
        <label for="body_bg">Post body BG</label>
        <textarea id="editor" name="body_bg" rows="10" cols="30"></textarea>
    </div>  

    <div class="form-item">
        <label for="body_en">Post body EN</label>
        <textarea id="editor2" name="body_en" rows="10" cols="30"></textarea>
    </div>  

    <div class="form-item">
        <label for="image">Image</label>
        <input type="file" name="image">
    </div>

    <div class="form-item">
        <label for="status">Post status</label>
        <select name="status">
            <option value="published">published</option>
            <option value="draft">draft</option>
        </select>
    </div>

    <div class="form-item">
        <input type="submit" class="form-submit" name="submit" value="Submit">
    </div>  
</form>

现在图像值正在保存到数据库图像字段中,如下所示: 示例-1.jpg。

据我所知,在 HTML 中,多个元素具有 multiple 属性,使用数组时,这一行应该是这样的:

<input type="file" name="image[]" multiple>

但是我如何设置一个数组元素 $image 并将多个值保存到一个字段中,所以当我上传三个图像时,数据库图像字段中保存的值应该是这样的: 示例-1.jpg、示例-2.jpg、示例-3.jpg

【问题讨论】:

  • 您有设计主图像表,您将在该表上为每个图像和组或类别输入具有唯一 ID 和保存图像的路径的条目。
  • 用列 post_id,file... 创建新的表格图像
  • 也许尝试将图像列表存储为 JSON?

标签: php html database mysqli


【解决方案1】:

我建议您为上传的图像创建另一个表,并将其与第一个表的外键映射。

例如:假设您有一个表单来添加属性详细信息。创造 用于添加属性详细信息的表格,带有多个图像上传 特征。您必须将图像的路径存储在此表中。 使用图像 ID 和主键创建另一个表(第一个 表)并映射它们。这样第二个表将有多行 第一个表的主键。这将帮助您获取 如果需要,可以轻松获取图像。

1.属性表

包含所有字段和图片上传路径字段。

2。 Image_Prop 表

包含img id(唯一)和外键(属性表) 用于映射以及其他详细信息。

【讨论】:

    猜你喜欢
    • 2021-06-09
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-29
    • 1970-01-01
    • 2011-09-10
    相关资源
    最近更新 更多