私のワークフローはとてもシンプルです:
- ファイルを削除します
- 電話する
clearstatcache()
- 新しいファイルを保存します
- 電話する
clearstatcache()
それでも、最後に、たとえば10秒後にリフレッシュしたときに戻ることを決定する前に、しばらくis_file()
戻ります。false
true
キャッシュの問題のようですね。
これが私のコードの一部です:
// 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()
ですよね?(または実際にこのキャッシュに関連するもの)