我遇到了一些问题。我想通过http拍摄实时图像并将其保存在我的网络服务器上。使用javascript我每秒刷新保存的图像。但是当javascript刷新并且图像没有完全保存时,我只能看到半图像(不是完全加载的图像)。
有没有办法解决这个问题?例如。仅在保存任务完成时显示图像?如果没有显示旧的“缓存”图像,直到新的图像可用。
我的php文件从源代码访问图像:
$path = realpath(dirname(__FILE__));
for ($i = 0; $i < 59; ++$i) {
copy('http://<<<IP>>>/livepicture.jpg', $path.'/livepicture.jpg');
sleep(1);
}
我的html文件刷新图像:
<script language="javascript" type="text/javascript" >
function ChangeMedia(){
var d = new Date();
var t = d.getTime();
document.getElementById('camara').src = "livepicture.jpg?"+t;
}
var reloadcam = setInterval("ChangeMedia()",1000);
</script>
<img src="livepicture.jpg" alt="Loading..." name="camara" id="camara" />
答案 0 :(得分:2)
您需要修改以下代码才能复制图像文件,并且只有在下载后才能替换上一个文件。
$path = realpath(dirname(__FILE__));
for ($i = 0; $i < 59; ++$i) {
copy('http://<<<IP>>>/livepicture.jpg', $path.'/temp.jpg');
rename($path.'/temp.jpg', $path.'/livepicture.jpg');
sleep(1);
}
答案 1 :(得分:0)
您可以尝试使用ajax requet和onload事件的图像以及当您的php响应良好时刷新页面