编辑:解决了!归功于@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');
?>
答案 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>