Filesize über4gb auslesen?

nein ist er nicht.

Auszug aus phpinfo()
Code:
safe_mode	               Off	Off
safe_mode_exec_dir	   no value	no value
safe_mode_gid	            Off	Off
safe_mode_include_dir	no value	no value
 
Ändere mal spaßeshalber die Zeile 9 aus der Funktion zu:

PHP:
    $command = "dir /-c " . escapeshellarg($file);
    $cmd = exec($command, $out, $err);
    if($err != 0)
    {
        die("Getting file info using dir command failed with error code $err. Return value was $cmd; Executed command was $command.");
    }
 
Getting file info using dir command failed with error code 1. Return value was ; Executed command was dir /-c "g:/XXXX/XXXX/XXX.pak".

also der part dort stimmt soweit
 
Nein, tut er nicht. Windows-Verzeichnis-Trenner ist \ und nicht /. Daher musst du noch ein str_replace() durchführen:

PHP:
function mygetSize($file)
{
    // Replace / by \
    $file = str_replace('/', PATH_SEPARATOR, $file);
    $exists = file_exists($file);
    ....
 
so ich habe das mal ebend angepast weil das ebedn nicht klappte .. da wurde der parth mit ";" getrennt...

so sieht er jetzt aus

PHP:
function mygetSize($file)
{	$ersetzen =array('/' =>"\\");
	$file = strtr( $file , $ersetzen );

    $exists = file_exists($file);
    if(!$exists)
    {
        die("File $file not found");
    }
    $fileName = basename($file);
    $command = "dir /-c " . escapeshellarg($file);
    $cmd = exec($command, $out, $err);
    if($err != 0)
    {
        die("Getting file info using dir command failed with error code $err. Return value was $cmd; Executed command was $command.");
    }
    
    // Debugging
    //var_dump($out);
    
    $pattern = "/(.*?)$fileName\$/";
    $size = 0;
    foreach($out as $line)
    {
        if(preg_match($pattern, $line, $matches))
        {
            $match = trim($matches[1]);
            $parts = explode(' ',$match);
            // Debugging
            //var_dump($parts);
            $size = $parts[count($parts)-1];
        }
    } 
    
    return $size * .0009765625 * .0009765625;
}

ich bedanke mich an allen die sich beteiligt haben mir zu helfen :)
es klappt nun wunderbar :) auch mit 10 gb files :)
den code lass ich mal komplett wie er jetzt ist da für andere die vllt ja das gleiche leiden haben sollten.

Mfg Uradar und bis demnächst :)
 
PHP:
* .0009765625 * .0009765625
ist zur umwandelung in die richtige grösse ... erst in kb und dann nochmal in mb
eine weitere multiplikation würden dann gb ergeben

ist quasi das gleiche als wenn ich / 1024/ 1024 schreibe
 
Zurück