1

我有从文件夹自动创建图片库的脚本。如果它不存在,它也会生成缩略图。除特殊情况外,一切正常。用户访问页面(Psudo CRON)调用缩略图生成。

我试图使用wget(一个大图像)将图像下载到我的服务器中的画廊文件夹,同时有人访问了网页并且缩略图是从部分下载的图像生成的,它创建了一个如下所示的部分缩略图.

部分生成的缩略图

为了在创建缩略图之前解决这个问题,我开始检查文件的最后修改时间和 600 微秒后的修改时间。如果它们不同,我将跳过图像缩略图生成。如果上传没有卡在任何地方并且文件不断更新,这应该可以工作。但另一方面,如果上传没有在指定的时间间隔内更新文件,它将失败

我的代码

//loop
$atime = filemtime($images_dir . $file);
usleep(600);
$btime = filemtime($images_dir . $file);
/* file uploading checking */
if ($atime != $btime) {
    continue;
}
// code to generate the thumbnail

有没有其他方法可以解决这个问题?

请注意这里用户可以直接访问文件夹,他可以使用 ftp/另一个脚本等以任何方式填充它,即上传不受脚本控制。

4

1 回答 1

3

解决方案对我来说似乎很简单。在下载图像的过程完成之前,不要将图像放在您的上传目录中。在它们在您的文件系统上之后,您将它们移动到目录中。

于 2013-01-25T19:53:51.353 回答