// ftell() returns 0 if seeking to the end is beyond the range of unsigned integer
$fseek =
fseek($this->fp, 0, SEEK_END
);
if (($fseek < 0
) || (($this->info
['filesize'
] != 0
) && (ftell($this->fp
) == 0
)) || ($this->info
['filesize'
] < 0
) || (ftell($this->fp
) < 0
)) { $real_filesize = getid3_lib::
getFileSizeSyscall($this->info
['filenamepath'
]);
if ($real_filesize === false
) { unset($this->info
['filesize'
]);
fclose($this->fp
);
throw new getid3_exception('Unable to determine actual filesize. File is most likely larger than '.
round(PHP_INT_MAX / 1073741824
).'GB and is not supported by PHP.'
);
} elseif (getid3_lib::
intValueSupported($real_filesize)) { unset($this->info
['filesize'
]);
fclose($this->fp
);
throw new getid3_exception('PHP seems to think the file is larger than '.
round(PHP_INT_MAX / 1073741824
).'GB, but filesystem reports it as '.
number_format($real_filesize / 1073741824, 3
).'GB, please report to info@getid3.org'
);
} $this->info
['filesize'
] =
$real_filesize;
$this->
warning('File is larger than '.
round(PHP_INT_MAX / 1073741824
).'GB (filesystem reports it as '.
number_format($real_filesize / 1073741824, 3
).'GB) and is not properly supported by PHP.'
);
} } return true;
}