在php不工作的情况下显示数据库中的img

在php不工作的情况下显示数据库中的img,php,html,css,web,Php,Html,Css,Web,我设法将图像上传到数据库(lonblob)。我无法显示该图像: 上传: if(isset($_POST['pic_upload'])){ if(getimagesize($_FILES['image']['tmp_name']) == FALSE){ echo "Please select an image."; }else{ $image= addslashes($_FILES['image']['tmp_name']); $na

我设法将图像上传到数据库(lonblob)。我无法显示该图像:

上传:

if(isset($_POST['pic_upload'])){
    if(getimagesize($_FILES['image']['tmp_name']) == FALSE){
        echo "Please select an image.";
    }else{
        $image= addslashes($_FILES['image']['tmp_name']);
        $name= addslashes($_FILES['image']['name']);
        $image= file_get_contents($image);
        $image= base64_encode($image);
        saveimage($name,$image);
    }
}
saveimage(将$image写入db字段(键入longblob))

获取图像:

function get_image($userid){
    $sql = "SELECT * FROM images WHERE user_id = ".$userid."";
    $result = execute_sql($sql);
    return $result;
}
显示图像:

<?php 
    $row = mysqli_fetch_array($img);
    echo '<img height="300" width="300" src="data:image/jpeg;base64,'.base64_encode($row[3]).'">'; 
?>


上传效果很好,但图像没有出现在网站上。

您对其进行了两次编码

<?php 
    $row = mysqli_fetch_array($img);
    echo '<img height="300" width="300" src="data:image/jpeg;base64,'.$row[3].'">'; 
?>


另外,我建议查看
pathinfo()

您要对其进行两次编码

<?php 
    $row = mysqli_fetch_array($img);
    echo '<img height="300" width="300" src="data:image/jpeg;base64,'.$row[3].'">'; 
?>


此外,我建议看<代码> PaTyFub()/<代码>,

在保存之前,你已经有了Base64编码,所以为什么在显示之前你必须再次使用Base64编码呢?你应该考虑使用准备好的语句来防止SQL注入。获取或Cookie数据。用户ID通常是从数据库中选择并存储在服务器端变量中。此处未检测到线程。您在
$image
$name
上使用
addslashes
做什么?作为文件系统或数据库查询上下文的安全措施,这是完全错误的工具。在保存之前,你已经是64进制编码了,那么为什么你必须在显示之前再按64字节编码?你应该考虑使用准备好的语句来防止SQL注入。SQL注入只能在SQL字符串与POST、GET或Cookie数据直接接触时才执行它的肮脏工作。用户ID通常是从数据库中选择并存储在服务器端变量中。此处未检测到线程。您在
$image
$name
上使用
addslashes
做什么?作为文件系统或数据库查询上下文的安全措施,它将是完全错误的工具。