我有一个网络摄像头,可以通过FTP将照片大约每30秒上传到一个特定的文件夹。文件使用创建日期和时间命名。
例如,图片“image20161023s131200029.jpg”将于2016年10月23日13:12:00创建。无法更改图像的命名方式。下一张图片将在大约30秒后上传,但不完全是这样,因此无法预测下一个文件名。
我希望显示最近的图像并每隔30秒刷新一次。
我的问题是我可以在php中显示最新的图像,使用scandir()和sort()来获取最新的图像,但由于这是在PHP中,因此无法刷新。如果位置总是相同的话,我也可以使用JavaScript以给定的间隔引用图像,所以如果最近的图像始终位于“/webcam/webcam01.jpg”那么这样就可以了。但是,当图像名称不断变化时,我不知道如何做到这一点,如果有人知道最好的(或至少是一种有效的)方式,这将是非常棒的。
我希望我已经清楚我要做的事情,对不起,如果之前已经回答过 - 我已经尝试了这两个网站搜索和谷歌无济于事。
答案 0 :(得分:1)
好的,我认为给定约束的解决方案将要求您使用服务器端代码(PHP)来解析最新的映像文件名并通过REST端点公开它。
因此,您的javascript代码会向您的服务器请求图片文件网址。您的PHP代码将找到最新的图像并返回该文件的相应URL。它看起来像这样:
// Function to refresh the image.
function refreshImage() {
$.get("myserver/getImageUrl", function( data ) {
$("img").attr('src', data);
});
}
//refresh image every 31 seconds
setInterval(refreshImage, 31000);
基本上无法控制文件名,您需要使用服务器端代码来解析客户端代码的文件名。如果您可以控制输出文件名以使其可预测或使最新图像始终具有相同的名称,那么您将不需要服务器端部件。