【发布时间】: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?