0

与服务器有共享驱动器;在该共享驱动器中,有一些图像由摄影部门定期处理。我必须编写我的网络服务并使用调度程序来调用它(比如说每个星期三),如果有任何新图像(来自上次调用(检查)),我必须使用它们在网站上显示。我怀疑我的策略,我想得到你的确认,以确保我走在正确的轨道上:

我的策略:

1)我使用 php 的 scandir 扫描驱动器以获取该特定文件夹中的所有图像 2)每当我获取新图像时,我都会通过它们的 ID 将它们放入数据库中(图像基于 ID 保存)。3)下周我运行我的网络服务,我检查图像是否在数据库中。如果不添加它并将其假定为新图​​像,...

你有更好的想法吗?

4

1 回答 1

1

你的方法听起来不错。但是,您可以在没有数据库的情况下通过查看文件的创建日期来执行此操作;假设任何文件创建的时间都比您上次运行检查的时间晚,因此上周三之后创建的任何文件都是新文件。

$dirPath='/path/of/your/images';
$files=scandir($dirPath);
//assuming this is in fact once a week, 
//adjust '$lastCheck' based on the schedule this will run
$lastCheck=strtotime("-7 day"); 
foreach($files as $file)
{
    if (is_file("$dirPath/$file") &&  !is_link("$dirPath/$file") ) //make sure its not a directory or symlink
    {
        $createTime=filectime("$dirPath/$file");
        //check if its older than a week
        if ($createTime>$lastCheck)
        {
            //file is newer than a week
            $newFiles[]="$dirPath/$file";
        }

    }
}

//now $newFiles has all the files from this week, with no DB interaction.
于 2013-11-02T02:11:46.890 回答