PHP filesize reporting old size

旧巷老猫 提交于 2019-11-27 14:37:57

On Linux based systems, data fetched by filesize() is "statcached".

Try calling clearstatcache(); before the filesize call.

According to the PHP manual:

The results of this function are cached. See clearstatcache() for more details.

http://us2.php.net/manual/en/function.filesize.php

Basically, you have to clear the stat cache after the file operation:

$fileOut = fopen($filepath.$filename, "ab")
fwrite($fileOut, base64_decode($data));
fflush($fileOut);
fclose($fileOut);

clearstatcache();

$newSize = filesize($filepath.$filename);

PHP stores all file metadata it reads in a cache, so it's likely that the file size is already stored in that cache, and you need to clear it. See clearstatcache and call it before you call filesize.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!