gpt4 book ai didi

PHP longblob 到 img

转载 作者:可可西里 更新时间:2023-11-01 00:34:25 25 4
gpt4 key购买 nike

我有一个调用数据库类的函数,并请求图像列表。下面是函数。

//Hämtar en array av filer från disk.
public function GetFiles()
{

$sql = "SELECT pic FROM pictures";
$stmt = $this->database->Prepare($sql);

$fileList = $this->database->GetAll($stmt);
echo $fileList;
if($fileList)
{
return $fileList;
}
return false;
}

这是 GetFiles 调用的我的数据库类方法。

public function GetAll($sqlQuery) {

if ($sqlQuery === FALSE)
{
throw new \Exception($this->mysqli->error);
}
//execute the statement
if ($sqlQuery->execute() == FALSE)
{
throw new \Exception($this->mysqli->error);
}
$ret = 0;
if ($sqlQuery->bind_result($ret) == FALSE)
{
throw new \Exception($this->mysqli->error);
}

$data = array();
while ($sqlQuery->fetch())
{
$data[] = $ret;
echo $ret;
}

$sqlQuery->close();

return $data;
}

GetFiles 函数的返回值随后由另一个函数处理

public function FileList($fileList)
{
if(count($fileList) == 0)
{
return "<p class='error'> There are no files in array</p>";
}

$list = '';
$list .= "<div class='list'>";
$list .= "<h2>Uploaded images</h2>";
foreach ($fileList as $file) {

$list .= "<img src=".$file." />";
}
$list .= "</div>";
return $list;
}

但我的数据库只返回 longblob 作为很多字符,我如何让 longblob 显示为图像?

最佳答案

您需要对其进行 base64 编码并通过数据 URI 将其传入,例如

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

但是,如果您要提供“大”图片,这将导致页面臃肿得可怕,完全没有办法缓存图像数据以节省用户以后的下载流量。你最好使用明确的图像服务脚本,例如

<img src="getimage.php?imageID=XXX" />

然后在该脚本中包含您的数据库代码:

$blob = get_image_data($_GET[xxx]);
header('Content-type: image/jpeg');
echo $blob;

像这样的问题就是为什么从数据库提供图像通常不是一个好主意。

关于PHP longblob 到 img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12785740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com