在文件夹中显示最新的图像,自动刷新


Display most recent image in folder, refreshing automatically

我有一个网络摄像头,大约每30秒通过FTP上传一张照片到一个特定的文件夹。这些文件使用它们创建的日期和时间来命名。

例如图像"image20161023s131200029.jpg"将在2016年10月23日13:12:00创建。不能更改映像的命名方式。下一张图片将在30秒后上传,但并不准确,因此无法预测下一个文件名。

我希望显示最近的图像,并每30秒刷新一次。

我的问题是,我可以在php中显示最新的图像,使用scandir()和sort()来获得最新的图像,但由于这是在php中,它不能刷新。如果位置总是相同,我也可以使用JavaScript在给定的间隔内刷新图像,所以如果最近的图像总是在"/webcam/webcam01.jpg",那么这将是好的。然而,我不知道如何做到这一点,当图像名称将不断变化,如果有人知道最好的(或至少一个工作)的方式来做到这一点,那将是奇妙的。

我希望我已经清楚我想做什么,对不起,如果这已经回答之前-我已经尝试了这两个网站搜索和谷歌无济于事。

好的,所以我认为这里的解决方案给你的约束将要求你使用你的服务器端代码(PHP)来解析最新的图像文件名,并通过一个REST端点暴露。

所以你的javascript代码会向你的服务器请求图像文件url。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);

基本上不能控制文件名,您将需要使用服务器端代码来解析客户端代码的文件名。如果您可以控制输出文件名,使其可预测或使最新的图像始终是相同的名称,那么您就不需要服务器端部分。