我有一个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'] . '">';