【问题标题】:Unable to display image from MySQL table无法显示 MySQL 表中的图像
【发布时间】:2015-03-13 08:42:00
【问题描述】:

我正在寻找用于显示保存在 MySQL 表中的图像的分辨率。我已经阅读了这个网站上几乎所有以前的问题。跟着他们,但没有运气。

我可以保存文件。尝试显示时,它只显示二进制代码

自己搞了好几天,没找到程序的错误。

目的是使用 3 个不同的表格显示用户的姓名、姓氏、出生日期和图像,然后根据用户需要进行更改。所有数据都显示得很好并且也可以更改。但无法显示图像..!!

已尝试“回显”第 22 行中的图像进行测试,然后在第 45 行中显示应该显示的位置。两种方式都只是二进制代码。任何帮助/建议将不胜感激..

<?php
session_start();

include 'db_connect.php';

$user   = (isset($_POST['user']) && !empty($_POST['user']) ? $_POST['user'] :"");
$pass   = (isset($_POST['pass']) && !empty($_POST['pass']) ? $_POST['pass'] :"");   

$sql = mysqli_query($connect, "SELECT mli.cust_id, mm.fname, mm.lname, mm.cust_dob, mi.cust_img 
          FROM member_login_info mli 
          LEFT JOIN member_master mm   ON mli.cust_id = mm.cust_id
          LEFT JOIN member_img mi  ON mli.cust_id = mi.cust_id
          WHERE mli.profilename = '$user' AND mli.password = sha1('$pass') ");        

$result = mysqli_fetch_array($sql);

  $fname  = $result["fname"];
  $lname  = $result["lname"];
  $dob    = date("d/m/Y", strtotime($result["cust_dob"]));
  $_SESSION["cid"] = $result["cust_id"];
  $image = $result["cust_img"];
  echo "<img src='" .$result['cust_img']. "'>"
?>

<div id="edit_data"> 
 <fieldset style="width:30%">
    <legend>Edit information</legend> 

 <table border="0">
    <form name="edit" enctype="multipart/form-data" method="POST" action="test_edit1.php">
    <tr>        
    <td>First Name:</td>
    <td><input name="fname" type="text" id="fname" value="<?php echo $fname; ?>" > </td> 
    </tr>   
    <tr> 
    <td>Last Name:</td> 
    <td><input name="lname" type="text" id="lname" value="<?php echo $lname; ?>"> </td> 
    </tr>   
    <tr> 
    <td>Date of Birth:</td><td> 
    <input name="dob" type="text" id="dob" value="<?php echo $dob; ?>"> </td>
    <input name="cid" value="<?php echo $cid; ?>" type="hidden" />
    </tr>   
    <tr> 
    <td>Photo:</td> <td> <?php echo "<img src='".$result['cust_img']."'/>" ?> </td>
    </tr>

    <tr> 
    <td>Upload your profile picture:</td><td> <input name="image" type="file"> </td>
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    </tr> 

    <tr> 
    <td><input id="exit" type="submit" name="exit" value="Exit" onclick="window.location.href='display.html'"></td>
    <td><input id="edit" type="submit" name="edit" value="Save"></td>  
    </tr> 
    </form> 
 </table>

【问题讨论】:

  • 为什么不直接将图片上传到特定文件夹并将url路径保存在mysql中?
  • 如果您希望我帮助构建一个可以在 mysql 表中存储图像路径并将实际图像保存在您的网络服务器中的代码,我可以做到。将图像作为 BLOB 存储在表中是 php 编码的坏习惯。如果你愿意,请告诉我
  • 您好 user768665,我想知道如何在 MySQL 表中存储路径。谢谢

标签: php mysql image


【解决方案1】:

我假设您不存储该图像的路径,而是图像内容本身并且它是 jpg(您可以更改为 png 或您那里的任何类型)。如果是这样,请使用 src 的数据 URI 语法:

$src = "data:image/jpg;base64,".base64_encode($result['cust_img']);
echo "<img src='$src'>";

【讨论】:

  • 嗨,n-dru,它奏效了。感谢那。为什么它不起作用的任何线索:echo "”。我花了几天的时间试图找出那个代码有什么问题......!!
  • 它不起作用,因为数据 URI 的格式是 data:[][;charset=][;base64], 让客户端知道如何处理该有效载荷。网络上有很多关于它的信息。我也遇到过这个问题,终于解决了,所以我很高兴能够帮助我的经验。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2018-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多