gpt4 book ai didi

php - 从单个文件输入将多个图像上传到数据库

转载 作者:太空宇宙 更新时间:2023-11-04 16:25:28 24 4
gpt4 key购买 nike

我正在尝试一次将多张图片上传到我的数据库。我能够使用单个文件来完成它,但我无法使用 html5 多个选项来完成它。

这是我的表格:

<form action="includes/saveImage.php" method="POST" enctype="multipart/form-data">
File:
<input type="file" multiple="multiple" name="image[]" accept="image/*"> <input type="submit" value="upload">
</form>

这是我的 saveImage.php

$files = array();
$fdata = $_FILES["image"];
if (is_array($fdata["name"]))
for ($i = 0; $i < count($fdata['name']); ++$i) {
$files[] = array(
'name' => $fdata['name'][$i],
'tmp_name' => $fdata['tmp_name'][$i],
'image' => file_get_contents($fdata['tmp_name'][$i]),
);
}
} else {
$files[] = $fdata;
}

foreach ($files as $file)
{
if (!$album_mysqli->query("INSERT INTO '1' VALUES ('','{$file['name']}','{$file['image']}',NOW())"))
{
print"error while uploading";
}
// print_r( $file );
}

如果我取消注释最后一个 print_r($file);它显示图像文件的二进制数据。为什么它不会上传到我的数据库有什么想法吗?

我要写入的数据库使用图像的 BLOB 字段。

解决了我的问题

SQL语句有问题以这种方式添加图片就可以了...

    foreach ($files as $file) 
{
$image = file_get_contents($file['tmp_name']);
$result = $album_mysqli->prepare("INSERT INTO '1' VALUES ('', ?, ?, CURDATE())");
$result->bind_param("ss", $file['name'], $image);
if (!$result->execute())
{
echo"Problem on file {$file['name']}. <br/>";
}
else
{
echo("{$file['name']} was added to the database. <br/>");
}

$result->close();
}

最佳答案

您不能像这样将图像上传到您的数据库。您应该要么通过 PHP 将图像上传到某个目录,然后将它们的文件名插入到您的数据库中,以便之后可以获取它们,或者您可以将它们的 base64 代码上传到数据库中,然后像这样将其放入图像标签中 <img src="base64_code_of_the_image" />

关于php - 从单个文件输入将多个图像上传到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25633226/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com