【发布时间】:2022-01-14 21:30:10
【问题描述】:
我正在尝试为我的网站制作上传和显示图片,并发现此代码可以作为一种方法:
$image = $_FILES['image'];
if (isset($_POST['submit']) && isset($image)){
echo "<pre>";
print_r($image);
echo"</pre>";
}
echo "<pre>";
print_r($_FILES['image']);
echo "<pre>";
//this moves the images to a folder
foreach($_FILES['image']['name'] as $key=>$val){
move_uploaded_file($_FILES['image']['tmp_name'][$key],'img/'.$val);
}
(这只是将图像数组保存到数据库中的代码块)
我的网站中已经有了提交按钮,并且它起作用了,我选择的所有图像都移动到了目录“img/”。同样在我的数据库中,我有数据类型为 VARCHAR 的列“图像”以将图像保存在数据库中,但是当我尝试在我的 HTML 表中显示它时,它显示为文本“数组”。
如何显示我上传的所有图像,而不是在我的表格中显示文本“数组”?
编辑: 所以要显示图像,这就是我所做的,这是在我的页面内显示图像(“connect.php”只是一个连接数据库的脚本):
<table>
<thead>
<tr> Image(s)</tr>
</thead>
<?php
include 'connect.php'
$data = mysqli_query($con, "SELECT*FROM my_images;");
while($d = mysqli_fetch_array($data))
{
?>
<tr>
<td><?php echo $d['image']; ?></td>
</tr>
<?php } ?>
</table>
编辑 2: "$d['image']" 里面是数组,里面有这个 What is inside the array
【问题讨论】:
-
你如何显示它?你能展示你的代码吗?
-
如果您正在获取文本“数组”,您可能需要遍历该数组以显示该数组中的项目。另外,这个问题与 MySQL 有什么关系?您还没有显示任何与数据库相关的代码
-
我已经编辑了这个问题,如果有帮助请告诉我
-
向我们展示如何在数据库中保存数据将有助于解决这个问题。如果您直接进入数据库并查看
my_images表中的image字段,您会在其中看到什么数据?数据看起来是对的还是只是写成数组? -
@alviratulaha 那么你刚刚添加的图像的内容,就是
$d['image']的结果?如果是这样,那么echo $d['image']将不起作用。您需要echo $d['image']['name']才能查看该名称。或者您可以print_r($d['image']);打印整个阵列。仍然不确定如何将数据保存在数据库中。显然,它不仅仅是您保存的文件名。