SplFileInfo::getSize

(PHP 5 >= 5.1.2, PHP 7, PHP 8)

SplFileInfo::getSize获取文件大小

描述

public SplFileInfo::getSize(): int|false

返回所引用文件的字节大小。

参数

此函数没有参数。

返回值

成功时以字节为单位的文件大小,或 false 失败。

错误/异常

如果文件不存在或发生错误,将抛出 RuntimeException

示例

示例 #1 SplFileInfo::getSize() 示例

<?php
$info
= new SplFileInfo('example.jpg');
echo
$fileinfo->getFilename() . " " . $fileinfo->getSize();
?>

上面的例子将输出类似于

example.jpg 15385

参见

添加注释

用户贡献的注释 5 notes

23
random-citizen at example dot org
6 年前
如果您使用的是 Symfony 的 UploadedFile,
请注意,如果您调用此方法
_在_您调用 @move 之后,您很可能会得到
一些难以追踪的错误,提示

`stat failed`

如果你真的仔细想想,它确实有道理,
文件已经被 Symfony 移动了,但 getSize 在 SplFileInfo 中,
而 SplFileInfo 并不知道文件已经被移动了。

奇怪的是,这个错误在我的工作 mac 上并没有出现 :|
1
匿名
8 年前
查看 https://php.net/manual/en/function.filesize.php#115792,了解适用于 32 位系统上大于 2GB 文件的快速可靠的 filesize 版本。
2
Pawel B.
1 年前
当 getSize 返回 0 时,在 fwrtite 之后,您必须使用 clearstatcache

$tmpFile = new \SplFileObject('/tmp/file.txt');
$fp = $tmpFile->openFile('w');
$fp->fwrite('123');
$fp->fflush();
echo $fp->getSize(); // 返回 0
clearstatcache();
echo $fp->getSize(); // 返回 3

https://bugs.php.net/bug.php?id=72182
-1
franssen dot roland at gmail dot com
13 年前
如果文件不存在,似乎会返回 FALSE... (PHP 5.3.4)
-9
contact at socialdevelop dot biz
8 年前
如果用 SplFileInfo::getSize 使用它 - 如果文件未找到,它会返回 false
如果用 SplFileObject::getSize 使用它 - 它会生成 RuntimeException: SplFileObject::__construct(my-file): failed to open stream: No such file or directory
To Top