PHP Conference Japan 2024

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

参见

添加注释

用户贡献的注释 4 条注释

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

`stat failed`

如果您仔细想想,这确实是有道理的,
文件已被 Symfony 移动,但 getSize 在 SplFileInfo 中,
而 SplFileInfo 并不知道文件已被移动。

奇怪的是,这个错误在我的工作 Mac 上没有出现 :|
匿名
8 年前
查看https://php.net/manual/en/function.filesize.php#115792 以获取在 32 位系统上针对大于 2GB 文件的快速可靠的文件大小版本。
Pawel B.
1 年前
当 getSize 在 fwrtite 后返回 0 时,您必须使用 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
franssen dot roland at gmail dot com
13 年前
如果文件不存在,则似乎返回 FALSE...(PHP 5.3.4)
To Top