代码之家  ›  专栏  ›  技术社区  ›  user8181313

从数据库检索时图像损坏

  •  0
  • user8181313  · 技术社区  · 7 年前

    代码:

    $db = mysqli_connect("localhost","root","","photos");
    
    if(isset($_POST['POST'])){
    
    $image = addslashes($_FILES['image']['tmp_name']);
    $image_name = addslashes($_FILES['image']['name']);
    $image = file_get_contents($image);
    $image = base64_encode($image);
    
    
    $sql = "INSERT INTO imaag ( name ) VALUES ('$image')";
    mysqli_query($db,$sql);
    }
    $res = mysqli_query($db,"SELECT * from imaag");
    

    我得到的图片是:

    <div>
        <?php 
        while ($row = mysqli_fetch_array($res)) {
    
        echo '<img 
     src="data:image/jpeg;base64,"'.base64_encode($row['name']).'/>';
        }?>
    </div>
    

    检索时,图像被破坏,我不知道图像是否上传。我认为它没有上传。上载部分有一些问题。

    2 回复  |  直到 7 年前
        1
  •  2
  •   B. Desai    7 年前

    因为在检索时,您不需要 base64_encode 再一次只需简单地添加字符串。更改您的 echo 具体如下:

     echo '<img 
     src="data:image/jpeg;base64,'.$row['name'].'"/>';
        }?>
    
        2
  •  0
  •   Karlo Kokkak    7 年前

    你的 src=” 没有结束 “”

    执行以下操作:

        echo '<img src="data:image/jpeg;base64,"'.base64_encode($row['name']).'"/>';