2017-10-11 76 views
-1

所以基本上如果我去getImage链接,数据库中的图像会显示,但如果我用它在.php文件,它将显示图像但会调整大小以适应卡,它不会显示和alt(这是头像)显示。图片来自getImage.php将不会显示在img src

<center> 
<img src="getImage.php" class="w3-circle" style="position:absolute; bottom:-20%; left:35.5%; width:30%" alt="Avatar"> 
</center> 

那么对于getImage.php代码:

<?php 
session_start(); 
require './Database.php'; 

// do some validation here to ensure id is safe 

$sql = "SELECT register.FULLNAME, register.IMAGE, gameData.NBA_SCORE FROM register inner join gameData on register.ID = gameData.ID WHERE NBA_SCORE = (select max(NEW_SCORE) from gameData)"; 
$result = mysqli_query($con, $sql); 
$row = mysqli_fetch_assoc($result); 
echo "<img src='".$row['IMAGE']."'>"; 
?> 

任何问题我在做什么?

+0

你为什么存储数据库中的图像? _Files_应该存储在_filesystem _...无论如何你正在重复你的'img'标签 –

+0

对不起,忘了提及这是一个网站,人们可以注册并上传图像,然后他们上传的图像被存储到数据库并在需要时调用。 – bbnjo8

回答

1

问题

HTML改掉得到像JPG或PNG一个有效的图像文件,但得到的PHP /文本文件与内容<img src="...">

解决方案

您需要更改的PHP文件内容类型的图像和输出的图像文件的数据:

header("Content-Type: image/jpeg");//or image/png 
echo file_get_contents("$imagepath");//file path not url!!! 

代码

<?php 
    session_start(); 
    require './Database.php'; 

    header("Content-Type: image/jpeg");  

    // do some validation here to ensure id is safe 

    $sql = "SELECT register.FULLNAME, register.IMAGE, gameData.NBA_SCORE FROM register inner join gameData on register.ID = gameData.ID WHERE NBA_SCORE = (select max(NEW_SCORE) from gameData)"; 
    $result = mysqli_query($con, $sql); 
    $row = mysqli_fetch_assoc($result); 
    $path = $row['IMAGE'];//Maybe you need to change this if you only save an url in the database 
    echo file_get_contents($path); 

?> 
+1

这就像一个魅力!从分析这个我认为头肯定有帮助,我现在要去研究$路径。谢谢!!! – bbnjo8

+0

是的,你应该将文件数据保存在系统的文件中,并将路径保存在数据库中。然后,您可以使用上面的代码而不进行任何更改。 – 2017-10-11 09:54:19