Mein Arbeitsablauf ist ziemlich einfach:
- Ich lösche eine Datei
- Ich rufe
clearstatcache()
- Ich speichere eine neue Datei
- Ich rufe
clearstatcache()
Trotzdem, am Ende, is_file()
gibt zurück. false
eine Zeit lang, bevor er beschloss, zurückzukehren true
wenn ich zum Beispiel 10 Sekunden später aktualisiere.
Es sieht nach einem Cache-Problem aus, nicht wahr?
Hier ist ein Teil meines Codes:
// 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
Vielen Dank für Ihre Hilfe!
EDIT:
In Anbetracht all der Antworten, die ich hatte, stellt sich das Problem nicht. scheinen zu kommen clearstatcache()
.
Aber sollte ich hinzufügen, wenn ich die Datei überschreibe (also ihre bestehende Status ändert sich nicht), is_file()
liefert das gute Ergebnis, aber wenn seine bestehende Status tatsächlich ändert, tritt das Problem auf. Es wäre seltsam, wenn der Fehler nicht von clearstatcache()
richtig? (oder etwas im Zusammenhang mit diesem Cache in der Tat)