在数据库中显示保存在Blob存储区中的图像的最佳方法是什么?

时间:2011-07-12 22:21:00

标签: php file http file-upload

具体示例:我将我的图像保存在一个Blob列上的MySQL中(让我们称之为'图像')。我正在使用CakePHP(并不重要)

这是用户的头像形象。我需要向他们展示。

现在,最好的方法是什么?

目前,我正在使用单独的操作“show_image / {user_id}”从数据库中读取图像,设置标题并打印内容。所以,如果我想显示我刚刚使用的图像:

<img src="show_image/3" />

show_image类似于:

function show_image($user_id){
    $user = //read user from database
    $image = file_get_contents($user['image']);
    header('Content-type: ' . $user['image_type']);
    header('Content-Disposition: attachment; filename="'.$user['image_name'].'"');
    echo $image;
}

现在,也许还有其他方法(可能是base64)或者比这种方法更好的东西。

谢谢!

2 个答案:

答案 0 :(得分:0)

您可能只需将文件上传到某个位置并将位置字符串存储在数据库中,而不是将图像保存为二进制对象。这将减少数据库的负载,并且通常更容易。

答案 1 :(得分:0)

好的,我已经按照通常的方式做了问题。

刚刚添加了@pst指向的标头缓存内容。