从php返回图像数据以供Jquery使用的正确方法


proper way to echo image data from php for Jquery consumption

我有一个由jquery函数调用的php函数。这个jquery函数将把图片放在页面上。我很难让这个正常工作。我正在努力查明问题可能出在哪里。我目前的想法是,我没有正确地将数据发送回jquery函数。这是我如何获得图像

 if(mysql_query("insert into Personal_Photos (Email, Pics) values('$email', '$data')"))
 {
     $query="select Pics, MAX(ID) from Personal_Photos where Email='$email'";
     $result=mysql_query($query) or die("Error: ".mysql_error());
     $row=mysql_fetch_array($result);
     echo '<img src="data:image/jpeg;base64'.base64_encode($row['Pics']).'"/>';
 }

关键行在这里…

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

我想知道我是否做得不正确?你是怎么做到的?有更好的方法吗?如果您注意到我的代码有任何其他错误,我将非常感谢您的批评。

data:[<MIME-type>][;charset=<encoding>][;base64],<data>

base64之后需要一个逗号,您的代码块似乎没有(尽管您发布的单个行有)。在你的实际代码中是怎样的?

我会把这个查询从容器网页中分离出来。我不确定是否有更好的方法,但可以肯定的是我的方法要简单得多。

page.html:

<img src="img.php" />

img.php:

<?php
$img=getimg();//get the img binary from mysql and don't base64 it.
echo $img;
?>