我的工作流程非常简单:
- 我删除一个文件
- 我打电话
clearstatcache()
- 我保存一个新文件
- 我打电话
clearstatcache()
尽管如此,最后还是会is_file()
返回false
一段时间,然后再true
例如在我刷新 10 秒后决定返回。
它看起来像一个缓存问题,不是吗?
这是我的一段代码:
// step 1
$path = 'file_to_delete.jpg';
unlink($path);
// is_file($path) returns false here -- normal behavior
// step 2
clearstatcache();
// step 3 -- some stuff going on on an uploaded image, that leads to:
imagejpeg($imagetosave, $path, 80);
// step 4
clearstatcache();
// is_file() returns false, i have to wait a couple of seconds before it starts returning true
谢谢您的帮助!
编辑:
鉴于我得到的所有答案,问题似乎并不来自clearstatcache()
.
但是我应该添加,当我覆盖文件时(因此它的现有状态不会改变),is_file()
返回良好的结果。但是当它的现有状态实际发生变化时,问题就发生了。如果错误不是来自clearstatcache()
,那会很奇怪,对吧?(或确实与此缓存相关的内容)