【发布时间】:2019-03-19 23:04:47
【问题描述】:
我正在尝试加载存储在 mysql 数据库中的 blob 字段中的图像。连接到用户的所有其他字段都在工作。
图片的数据库获取具体是:
public function singleIMG(){
$this->execute();
return $this->stmt->fetch(PDO::FETCH_ASSOC);
}
我的用户模型中的查询函数是:
public function getJobImg($ekspert_id){
$this->db->query("SELECT * FROM eksperti WHERE id = :id");
$this->db->bind(':id', $ekspert_id);
$row = $this->db->singleIMG();
extract($row);
return $row;
}
我在我的控制器中获取数据:
$template->img = $job->getJobImg($job_id);
最后,它没有加载视图:
<img src="data:image/jpg;base64,'.base64_encode($img['profile_img']).'" height="200" width="200" class="img-thumnail">
你能找出我的错误吗?
【问题讨论】:
-
到目前为止你做了什么来调试这个?你检查过这个创建的 HTML 输出吗?您是否在模板中制作了 $img 的调试输出以验证它实际上包含您假设的内容?
<img src="..." …>是否甚至在 PHP 代码块中动态输出? (或者你只是在那个地方输出了静态文本<img src="data:image/jpg;base64,'.base64_encode($img['profile_img']).'" …?) -
我试图将它作为一个字符串输出,它确实从数据库中获取 blob 对象,但是当我在浏览器控制台中对其进行编码时,我得到一个 ERR_INVALID_URL 错误
-
请显示模板中的整行,因为单引号和双引号对我来说似乎没有意义
-
在将图像添加到数据库之前,您是否对图像进行 base64_encod 编码?
-
@RiggsFolly 不,我正在关注一个教程,那里的人在将文件插入数据库之前使用了 addlashes() 方法。我是否缺少任何步骤?
标签: php mysql pdo phpmyadmin base64