Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数据库中显示保存在Blob存储中的图像的最佳方式是什么?_Php_File_Http_File Upload - Fatal编程技术网

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

Php 在数据库中显示保存在Blob存储中的图像的最佳方式是什么?,php,file,http,file-upload,Php,File,Http,File Upload,具体示例:我将我的图像保存在MySQL中的一个Blob column上(我们称之为“image”)。我正在使用CakePHP(其实并不重要) 这是用户的化身图像。我要给他们看看 现在,最好的方法是什么 目前,我正在使用一个单独的操作“show_image/{user_id}”,它从数据库中读取图像,设置标题并打印内容。因此,如果我想显示我只使用的图像: <img src="show_image/3" /> 现在,也许还有其他方法(base64)或比这种方法更好的方法 谢谢 您不应该

具体示例:我将我的图像保存在MySQL中的一个Blob column上(我们称之为“image”)。我正在使用CakePHP(其实并不重要)

这是用户的化身图像。我要给他们看看

现在,最好的方法是什么

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

<img src="show_image/3" />
现在,也许还有其他方法(base64)或比这种方法更好的方法


谢谢

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

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

好的,我已经按照问题所说的方式做了


刚才添加了@pst指向的头缓存。

好的,我已经按照问题所说的方法完成了


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

为什么base64工作得更好?:)图像(通常)是二进制的。除非另有充分理由,否则就让他们这样生活吧。然而,这确实应该支持缓存/“未修改”,以最大限度地减少浪费的带宽。一般来说,我更喜欢将“数据文件”保存在数据库本身之外。。。但这两方面都有争论。谢谢兄弟。缓存!!!!你说得对。我想在base64中,在img标签的src attr中传输它。当然,这似乎不是一个好主意,但这是另一个选择。为什么base64工作得更好图像(通常)是二进制的。除非另有充分理由,否则就让他们这样生活吧。然而,这确实应该支持缓存/“未修改”,以最大限度地减少浪费的带宽。一般来说,我更喜欢将“数据文件”保存在数据库本身之外。。。但这两方面都有争论。谢谢兄弟。缓存!!!!你说得对。我想在base64中,在img标签的src attr中传输它。当然,这似乎不是一个好主意,但这是另一个选择。你是对的。我已经做了好几次了,但是现在我的要求不同了。谢谢你的回答,你说得对。我已经做了好几次了,但是现在我的要求不同了。谢谢你的回答。
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;
}