|
|
|
@ -73,7 +73,7 @@ class LargeFileHelper {
|
|
|
|
|
*
|
|
|
|
|
* @return string Unsigned integer base-10 string
|
|
|
|
|
*/
|
|
|
|
|
public function formatUnsignedInteger($number) {
|
|
|
|
|
public function formatUnsignedInteger(int|float|string $number): string {
|
|
|
|
|
if (is_float($number)) {
|
|
|
|
|
// Undo the effect of the php.ini setting 'precision'.
|
|
|
|
|
return number_format($number, 0, '', '');
|
|
|
|
@ -98,7 +98,7 @@ class LargeFileHelper {
|
|
|
|
|
* @return null|int|float Number of bytes as number (float or int) or
|
|
|
|
|
* null on failure.
|
|
|
|
|
*/
|
|
|
|
|
public function getFileSize($filename) {
|
|
|
|
|
public function getFileSize(string $filename): null|int|float {
|
|
|
|
|
$fileSize = $this->getFileSizeViaCurl($filename);
|
|
|
|
|
if (!is_null($fileSize)) {
|
|
|
|
|
return $fileSize;
|
|
|
|
@ -118,7 +118,7 @@ class LargeFileHelper {
|
|
|
|
|
* @return null|int|float Number of bytes as number (float or int) or
|
|
|
|
|
* null on failure.
|
|
|
|
|
*/
|
|
|
|
|
public function getFileSizeViaCurl($fileName) {
|
|
|
|
|
public function getFileSizeViaCurl(string $fileName): null|int|float {
|
|
|
|
|
if (\OC::$server->get(IniGetWrapper::class)->getString('open_basedir') === '') {
|
|
|
|
|
$encodedFileName = rawurlencode($fileName);
|
|
|
|
|
$ch = curl_init("file:///$encodedFileName");
|
|
|
|
@ -146,7 +146,7 @@ class LargeFileHelper {
|
|
|
|
|
* @return null|int|float Number of bytes as number (float or int) or
|
|
|
|
|
* null on failure.
|
|
|
|
|
*/
|
|
|
|
|
public function getFileSizeViaExec($filename) {
|
|
|
|
|
public function getFileSizeViaExec(string $filename): null|int|float {
|
|
|
|
|
if (\OCP\Util::isFunctionEnabled('exec')) {
|
|
|
|
|
$os = strtolower(php_uname('s'));
|
|
|
|
|
$arg = escapeshellarg($filename);
|
|
|
|
@ -171,7 +171,7 @@ class LargeFileHelper {
|
|
|
|
|
*
|
|
|
|
|
* @return int|float Number of bytes as number (float or int).
|
|
|
|
|
*/
|
|
|
|
|
public function getFileSizeNative($filename) {
|
|
|
|
|
public function getFileSizeNative(string $filename): int|float {
|
|
|
|
|
$result = filesize($filename);
|
|
|
|
|
if ($result < 0) {
|
|
|
|
|
// For file sizes between 2 GiB and 4 GiB, filesize() will return a
|
|
|
|
@ -188,7 +188,7 @@ class LargeFileHelper {
|
|
|
|
|
* @param string $fullPath
|
|
|
|
|
* @return int
|
|
|
|
|
*/
|
|
|
|
|
public function getFileMtime($fullPath) {
|
|
|
|
|
public function getFileMtime(string $fullPath): int {
|
|
|
|
|
try {
|
|
|
|
|
$result = filemtime($fullPath);
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
@ -205,7 +205,7 @@ class LargeFileHelper {
|
|
|
|
|
return $result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected function exec($cmd) {
|
|
|
|
|
protected function exec(string $cmd): null|int|float {
|
|
|
|
|
$result = trim(exec($cmd));
|
|
|
|
|
return ctype_digit($result) ? 0 + $result : null;
|
|
|
|
|
}
|
|
|
|
|