Hallo auch,
ich hab mal folgende Frage... wie kann man die filesize über 4 gb auslesen ? So das sie korrekt angezeigt wird? Also z.b. 7302 MB statt 4093.96875 MB so sieht es derzeit mit der hier gezeigten funktion aus.
Ich hoffe auch schneller hilfe udn bedanke mich im vorraus bei allen Usern die helfen wollen.
ich hab mal folgende Frage... wie kann man die filesize über 4 gb auslesen ? So das sie korrekt angezeigt wird? Also z.b. 7302 MB statt 4093.96875 MB so sieht es derzeit mit der hier gezeigten funktion aus.
Ich hoffe auch schneller hilfe udn bedanke mich im vorraus bei allen Usern die helfen wollen.
PHP:
function filesize64($file)
{
// First, try the filesize() function
$size = (sprintf("%u", filesize($file))* .0009765625) * .0009765625-2;
// If the result is negative...
if ($size < 0)
{
// If the platform is Windows...
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')
{
// Try using the NT substition modifier %~z
$size = trim(exec("for %F in (\"".$file."\") do @echo %~zF"));
// If the return is blank, zero, or not a number
if (!$size || !ctype_digit($size))
{
// Use the Windows COM interface
$fsobj = new COM('Scripting.FileSystemObject');
if (dirname($file) == '.')
$file = ((substr(getcwd(), -1) == DIRECTORY_SEPARATOR) ? getcwd().basename($file) : getcwd().DIRECTORY_SEPARATOR.basename($file));
$f = $fsobj->GetFile($file);
return $f->Size;
}
// Otherwise, return the result of the 'for' command
return $size;
}
// If the platform is not Windows, use the stat command (should work for *nix and MacOS)
return trim(`stat -c%s $file`);
}
// Otherwise, return the result of the filesize() call
return $size;
}