有幾種方法可以解決 PHP 獲取文件大小不準確的問題:
使用 filesize()
函數獲取文件大小。這是最常用的方法,但有時可能會不準確,特別是當文件大小超過 2GB 時。如果遇到這種情況,可以使用其他方法來獲取文件大小。
使用 exec()
函數和操作系統的命令行工具獲取文件大小。例如,在 Linux 系統上,可以使用 du -b
命令獲取文件大小,然后通過 exec()
函數執行該命令并獲取輸出。類似地,在 Windows 系統上,可以使用 dir
命令獲取文件大小。
使用 fseek()
和 ftell()
函數獲取文件大小。這種方法適用于小文件,可以將文件指針移至文件末尾,然后使用 ftell()
函數獲取文件大小。
下面是使用 exec()
函數和操作系統的命令行工具獲取文件大小的示例代碼:
function getFileSize($filePath) {
$output = '';
$command = 'du -b ' . escapeshellarg($filePath);
exec($command, $output);
$fileSize = (int) trim($output[0]);
return $fileSize;
}
$fileSize = getFileSize('/path/to/file');
echo $fileSize;
請注意,上述代碼適用于 Linux 系統,如果在 Windows 系統上使用,需要修改命令和參數。