我试图一次上传多个图像到我的数据库。我能够用单个文件做到这一点,但我无法使用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($文件);它显示图像文件的二进制数据。 任何想法,为什么它不会上传到我的数据库?
我想要写入的数据库对图像使用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();
}
我使用的BLOB字段我数据库表。通过单个文件输入,我能够以这种方式将图像写入数据库,并且能够检索它。 – Lucas 2014-09-03 06:49:28