为什么我的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。
答案 0 :(得分:0)
如果要下载文件内容,则不得在其周围放置HTML元素。
您一次也只能发送一张图片,因此循环播放毫无意义。
<?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 dbforfile FROM filesdb WHERE fileid =$id";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
header('content-type: image/jpeg');
$row = $result->fetch_assoc();
echo $row['dbforfile'];
}
答案 1 :(得分:0)
您只需要制作一张图片,因此不需要循环。但是,如果您想做倍数;您需要使用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']).'"/>';
}