2016-04-16 4 views
0

Ich versuche, die Dateigröße aller Dateien in einem Verzeichnis zu wiederholen, aber es gibt nicht die Dateigröße, nur der Dateiname. Das ist mein Code:Wie bekomme ich die Dateigröße von Dateien in einer foreach-Schleife

$dir = "users/$UserName"; 
$files = scandir($dir); 
sort($files); 

echo '<table>'; 
foreach ($files as $file) { 
if ($file != '.' && $file != '..') { 
?> 

    <tr> 
    <td><?php echo $file."<br />"; 
     ?> 
    </td> 
    <td> 
     <?php echo filesize($file); 
     ?> 
    </td> 

    </tr> 

<?php 

} 
} 

was mache ich falsch?

+2

Sie passieren nur Dateinamen zu Dateigröße Funktion. Geben Sie den vollständigen Pfad wie $ dir an. "/". $ file' –

+0

Könnten Sie die Ausgabe html und/oder irgendwelche Fehler geben? Das würde helfen, herauszufinden, was falsch läuft. – Wold

+0

@m_poorUser danke! jetzt funktioniert es: 'echo filesize ($ dir. '/'. $ datei);' –

Antwort

0

AS m_poorUser sagte Sie den vollständigen Dateipfad zur filesize() Funktion zu übergeben müssen Datei, vielleicht, wenn Sie dies tun:

<?php echo filesize($dir."/".$file); ?> 
0

scandir kehrt Dateiname nicht nur Pfad Datei.

Sie sollten Pfad verwenden in filesize($file)

Verwandte Themen