我在阅读关于将图像以二进制形式上传到数据库而非将它们放在服务器上的教程时,找到了以下方法:
PHP:
$image = chunk_split(base64_encode(file_get_contents($tmpfile)));
mysql_query("INSERT INTO images (`img_location`, `caption`, `user`, `genre`, `when`) VALUES ('$image', '$caption', '$id', '$genre', '$when')");
我的问题是如何从数据库中获取数据,我已经阅读了几种方法来完成它,尝试了所有的方法,但无法弄清楚,我没有收到 MySQL 错误,以下是我尝试的方式:
$get_pics = mysql_query("SELECT * FROM images WHERE user='$id' ");
while($get_pics2 = mysql_fetch_array($get_pics))
{
$sixfour_enc = base64_decode($get_pics2['img_location']);
$new .= "<img src=\"".$sixfour_enc."\" >";
}
这个有点能用,但实际上它将原始二进制内容打印在IMG标签中。
我该如何将其编译为可读的图像?而且,在数据库中存储图像是不明智的吗?我应该像平常一样将它们存储在服务器上吗?
谢谢 -迈克