JQuery PHP 在对话框中打印图像


JQuery PHP print image inside Dialog

我有一个PHP页面,可以打开一个jQuery对话框,如下所示:

$( "#editdialog" ).dialog({
  autoOpen: false,
  title: 'Show photo',
  height: 750,
  width:900,
  modal:true
});

$( ".editer" ).click(function() {
    $( "#editdialog" ).load("photo_view.php");
    $( "#editdialog" ).dialog( "open" );
    $('.ui-widget-overlay').css('background', 'silver');
});

load_photo.php代码如下:

$sql = "SELECT PHOTO FROM USERS WHERE ID='01'";
$result = mysql_query($sql);
if($result==FALSE) die("error".mysql_error());
$row = mysql_fetch_assoc($result);
header("Content-type: image/jpeg");
echo $row['PHOTO'];

如果我直接浏览到load_photo.php则会显示图像。如果我在对话框中加载load_photo.php页面,则不会显示图像。

可能是header()函数的错误?

编辑:我添加一个中间页面,就像你的建议一样。现在对话框加载photo_view.php其代码为:

 <img src="load_photo.php" width="75" height="75" style="padding:0px;" class="imageborder" onerror="this.src='noimg.jpg'" accept="image/*" />

仍然不起作用,相同的结果。在对话框中,img 框仍保持空白,直接浏览以显示图像photo_view.php。

谢谢!

是的,问题是您进行图像响应(二进制)并且浏览器显示它,因为它会自动将其放入img标签中。

您应该删除header()并使用以下 html 代码进行响应:

echo '<img src="' . $row['PHOTO'] . '">';