我有动态更改图片源的网页,并使用PHP和JQuery的组合显示新图像。
这是PHP5脚本:
<?php
header("Content-Type: image/jpeg");
$page = $_SERVER['PHP_SELF'];
$sec = "1";
include_once "cookie_checker.php";
function get_file_extension($filename) {
return substr(strrchr($filename, '.'), 1);
}
$path = "./motion";
$latest_ctime = 0;
$latest_filename = '';
$exts = array('jpg');
$d = dir($path);
while (false !== ($entry = $d->read())) {
$filepath = "{$path}/{$entry}";
$extension = strtolower(get_file_extension($entry));
if (is_file($filepath) && filectime($filepath) > $latest_ctime && $extension && in_array($extension,$exts)) {
$latest_ctime = filectime($filepath);
$latest_filename = $entry;
}
}
echo '<img src="/motion/' . $latest_filename . '" />';
?>
这是代码的Javascript部分:
var auto_refresh = setInterval(function (){
$('#load_div').load('camera_stream_worker.php');}
, 1000);
显示图像的HTML:
<div id="load_div">
</div>
该脚本适用于Firefox,但不适用于Internet Explorer。
你能告诉我如何在Internet Explorer中显示图片???
我不明白为什么它不起作用。根据定义,PHP是服务器端编程语言,Internet Explorer正在客户端工作。
我想知道为什么这适用于Firefox,但不适用于Internet Explorer。
由于
答案 0 :(得分:2)
首先改变你的php内容类型,因为你正在返回html内容。它会起作用
答案 1 :(得分:1)
我怀疑这是浏览器缓存的问题。为避免您的图像被缓存,您可以使用ajax调用发送一些“随机”参数,如时间戳:
var auto_refresh = setInterval(function (){
$('#load_tweets').load('camera_stream_worker.php?time=' + Date.now());}
, 1000);