Problema con dimensione file

matmaz

Nuovo Utente
10 Feb 2012
1
0
0
Ciao a tutti,
ho questo script:


PHP:
<?php function dir_list($directory = FALSE) { $dirs= array(); $files = array(); if ($handle = opendir("./" . $directory)) { while ($file = readdir($handle)) { if (is_dir("./{$directory}/{$file}")) { if ($file != "." & $file != "..") $dirs[] = $file; } else { if ($file != "." & $file != "..") $files[] = $file; } } } closedir($handle); reset($dirs); sort($dirs); reset($dirs); reset($files); sort($files); reset($files); echo "\n<p>"; while(list($key, $value) = each($files)) { // qui puoi fare l'operazione su "$directory.$value", p.es.: $size = $directory.$value; echo $size . ': ' . filesize($size) . ' bytes'; $r; echo " <table border='0' cellpadding='0' id='tab_file'> <tr> <td width='50'><img src='../img/file.png' width='50' height='50'/></td> <td><a href=\"{$directory}{$value}\">{$value}</a> </td> </tr></table>\n"; } echo "</p>\n"; } dir_list("/dir/"); ?>


Mi da un questo "errore" sulla lettura delle dimensioni del file:

Citazione:
Warning: filesize() [function.filesize]: stat failed for /dir/FATTURA.pdf in C:\Program Files\EasyPHP-5.3.9\www\matmaz\cms\start.php on line 129


Qualcuno riesci a dirmi cosa sto sbagliando?

Grazie
 
Ho fatto un po di fatica a formattarlo

spero che sia cosi:

PHP:
<?php

function dir_list($directory = FALSE) {

    $dirs = array();
    $files = array();
    if ($handle == opendir("./" . $directory)) {

        while ($file = readdir($handle)) {

            if (is_dir("./{$directory}/{$file}")) {

                if ($file != "." & $file != "..")
                    $dirs[] = $file;
            } else {
                if ($file != "." & $file != "..")
                    $files[] = $file;
            }
        }
    }
    closedir($handle);
    reset($dirs);
    sort($dirs);
    reset($dirs);
    reset($files);
    sort($files);
    reset($files);
    echo "\n<p>";
    while (list($key, $value) = each($files)) {
        // qui puoi fare l'operazione su "$directory.$value", p.es.: 
        $size = $directory . $value;
        echo $size . ': ' . filesize($size) . ' bytes';
        $r;
        echo " <table border='0' cellpadding='0' id='tab_file'>
                <tr> 
                <td width='50'>
                <img src='../img/file.png' width='50' height='50'/>
                </td> 
                <td><a href=\"{$directory}{$value}\">{$value}</a> </td>
                </tr>
               </table>\n";
    }
    echo "</p>\n";
}

dir_list("/dir/");
?>

cmq non ci ho capito ancora molto....
 
Quella funzione sembra del Paleolitico. Prova questa:
PHP:
function listDirectory($dir = '.')
{
    $iterator = new DirectoryIterator($dir);

    echo <<<EOF
<table border="0" cellpadding="0" id="tab_file">
EOF;

    foreach ($iterator as $item) {
        if ($item->isDot()) {
            continue;
        }

        $name = $item->getBasename();
        $path = $item->getPathname();

        echo <<<EOF
    <tr>
        <td width="50">
            <img src="../img/file.png" width="50" height="50" />
        </td>

        <td>
            <a href="{$path}">{$name}</a>
        </td>
    </tr>
EOF;
    }

    echo <<<EOF
</table>
EOF;
}
 

Discussioni simili