我试图动态地将图像插入横幅,现在正常工作。如果没有验证错误,我上传我的图像并插入图像的数据库名称。
但是我想问你一个我想到的问题,而我却找不到答案。
要插入图像,我想检查图像是否已经存在,以及是否有超过5张图像,5张图像,因为我只想在横幅上最多拍摄5张图像。
我这样做,在保存图像时咨询我的目录文件夹,而不是咨询数据库。
您对性能的看法如何?还是一样吗?你看到像我这样的优势吗?
继承我的代码示例:
extAlllowed = array('image/jpeg','image/pjpeg','image/png','image/gif');
$myDirectory = ../banner-images/;
if(in_array($img['type'][$i],$extAlllowed))
{
$fi = new FilesystemIterator($myDirectory, FilesystemIterator::SKIP_DOTS);
echo iterator_count($fi);
if(file_exists($myDirectory.$image))
{
echo'Image selected already exist';
}
else if(iterator_count($fi)>=5)
{
echo'You can have only 5 images at time in banner.';
}
else
{
uploadImage($img['tmp_name'][$i],$image,'2000',$myDirectory);
$inseretBanner = $pdo->prepare("INSERT INTO banners (img) VALUES (:img)");
$inseretBanner->bindValue(':img', $image);
$inseretBanner->execute();
echo'Image inserted with sucess';
}
}
答案 0 :(得分:0)
考虑到拥有多个图像文件,在数据库中维护一个包含当前图像数量的计数器会更快。 FilesystemIterator将在内部运行所有文件来计算它们,这可能导致性能不佳。在大多数情况下,对数据库的简单查询(例如:SELECT image_amount FROM users WHERE id = [您当前的用户])会更快。
如果这样做,每次在数据库中插入/删除图像时都必须更新计数器。
希望有所帮助。