Ren*_*ers 5 php signed filesize
我一直在讨论如何在PHP中获取> = 2 GB的文件的有效文件大小.
示例
这里我使用filesize()函数检查大小为3,827,394,560字节的文件的文件大小:
echo "The file is " . filesize('C:\MyFile.rar') . " bytes.";
Run Code Online (Sandbox Code Playgroud)
结果
这是它返回的内容:
该文件是-467572736字节.
背景
PHP使用有符号整数,这意味着它可以表示的最大数量是2,147,483,647(+/- 2 GB).
这是有限的地方.
我尝试过并且显然有效的解决方案是使用 COM FileObject 的“大小”属性。我不完全确定它使用什么类型。
这是我的代码:
function real_filesize($file_path)
{
$fs = new COM("Scripting.FileSystemObject");
return $fs->GetFile($file_path)->Size;
}
Run Code Online (Sandbox Code Playgroud)
它被简单地称为如下:
$file = 'C:\MyFile.rar';
$size = real_filesize($file);
echo "The size of the file is: $size";
Run Code Online (Sandbox Code Playgroud)
结果
文件大小为:3,827,394,560 字节
http://us.php.net/manual/en/function.filesize.php#102135提供了一种完整且正确的方法,用于在 PHP 中查找大于 2GB 的文件大小,而无需依赖特定于操作系统的接口。
它的要点是您首先使用filesize获取“低”位,然后打开+查找文件以确定它包含多少个 2GB 的倍数(“高”位)。
| 归档时间: |
|
| 查看次数: |
8705 次 |
| 最近记录: |