php - 如何用 PHP 显示 blob?
问题描述
为什么我的 php 不能显示图像?
<?php
include("sql.php");
//$sql = "SELECT * FROM filesdb WHERE fileid = 5";
$id = $_GET['id'];
// do some validation here to ensure id is safe
$sql = "SELECT * FROM filesdb WHERE fileid =$id";
echo $sql."<br>";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
//header('content-type: image/jpeg');
echo "<br>Fileid:".$row['fileid'];
echo "<br>FileName:".$row['filename'];
header("Content-Type: image/jpeg");
echo "<br>".$row['dbforfile'];
}
它可以显示fileid
和filename
,但不能显示dbfofile
,这是一个 BLOB。
解决方案
你只做一张图片,所以你不需要循环。但是如果你想做倍数;您需要使用img
标签并调用另一个 PHP 脚本,就好像它是图像中的图像一样,src
并让该脚本输出图像(带有标题)。或者您可以使用 base64 编码data
作为标签中的图像源:
while($row = $result->fetch_assoc()) {
echo "<br>Fileid:".$row['fileid'];
echo "<br>FileName:".$row['filename'];
echo "<br>";
echo '<img src="data:image/jpeg;base64,'.base64_encode($row['dbforfile']).'"/>';
}
推荐阅读
- entity-framework - 使用 Entity-Framework Core/RabbitMQ 和 HTTP API 在多个 SQL 数据库之间进行通信的好方法
- python - 网页抓取 Google 并打印搜索结果 #
- javascript - 反应将类添加到子组件
- android - Android 服务 - android.os.BinderProxy 无法强制转换为 xxx
- python - pandas - 使用 DateTimeIndex 对 DataFrame 进行切片的 Pythonic 方法
- node.js - Firebase - 节点云函数解析触发器错误:找不到模块'firebase-functions'
- netlify - 如何在 Netlify 站点上托管和访问文件
- ruby-on-rails - 无法从 Rails 5 中 /layouts/application 中的资产管道声明加载 CSS,在控制器视图中工作正常
- android - Google Maps for Work 的 SDK 更新站点无法正常工作
- apache-spark - 如何在集群外的 Kubernetes 中正确暴露 spark