使用sql将图像从客户端发送到数据库

Posted

技术标签:

【中文标题】使用sql将图像从客户端发送到数据库【英文标题】:Send image from client to database using sql 【发布时间】:2013-03-06 16:13:22 【问题描述】:

我正在尝试显示存储在我的数据库中的图像。我知道将图像存储在数据库中并不是最佳做法,但仅出于此目的,我需要它。我的问题是当我去显示图像时,我得到的只是一堆乱码,我猜这是代码中的图像,但不是我想要的视觉效果。当我使用标题标签来识别图像时,我得到的只是一个缩略图,这意味着它没有正确读取它。任何帮助都会很棒。

下面是我正在使用的代码。我已经尝试过两种方式,使用它在 phphtml 中显示,但无法显示图像:

while($row = mysql_fetch_array($result))

$Long = $row['Long'];
$Lat = $row['Lat'];
$img = $row['file'];
echo "<b><center>Database Output</b><br><br>";

echo "<td>" .$row['file']."</td>";
echo  "----";
echo "<td>" .$row['Lat']."</td></center>";
//echo "<td>" .$row['file']."</td>";

?>
    <div id="map">
<img src="<? $img?>" >

感谢您的任何意见

【问题讨论】:

如何将图像保存在数据库中? $row['file'] 是什么? 目前我只是手动将其保存为 blob,$row['file'] 是其保存的列 【参考方案1】:

要么将图像作为数据 URI 嵌入到 html 页面中

<img src="data:image/jpeg;base64,<?php echo base64_encode($img) ?>" />

这对于“大”文件来说是非常可怕的——你让浏览器无法缓存图像,迫使用户每次加载页面时都下载 base64 编码的数据。

或者你有一个子脚本来提供实际图像,并且有类似的东西:

<img src="getimage.jpg?id=XXX">

<?php

$data = get_image_from_db($_GET['id']);
header('Content-type: image/jpeg');
echo $data;

【讨论】:

“非常可怕的可怕”,不幸的是,仍然可能是轻描淡写的哈哈。第二个建议 FTW。 刚刚尝试了您的第一个解决方案,它运行良好,我知道它可能不是您所说的最佳解决方案,但它确实有效,这就是我所需要的,非常感谢您

以上是关于使用sql将图像从客户端发送到数据库的主要内容,如果未能解决你的问题,请参考以下文章

将图像从服务器发送到客户端的专业方式

如何使用 socket.io 发送图像文件(二进制数据)?

将裁剪的图像发送到数据库 ajax 在客户端和服务器上的 PHP

使用 Http Post 发送图像

使用 REST API 将图像从服务器发送到客户端

将图像添加到响应式网站,然后将其发送到 SQL 数据库