File size checker for Mappe listning
Hej, jeg har fundet et script som jeg gerne vil bruge det gør ikke andet end at liste alle filer og mapper som man har sat $path til, er det muligt at istedet for udenfor filerne der er ikoner så vil der blive checket på hver fil eller mappe hvor meget det fylder, hvis det fylder over 2GB så viser den ikon1 hvis den er under 2GB så viser den ikon2, jeg vil ikke have den viser hvor meget det fylder i tal, men i billeder og det skal være så jeg ved den fylder 2GB+ eller 2GB-Endelig kig på scriptet under, vil helst have en redigere det istedet for at lave et nyt men hvis du kan så det eneste der skal ligge i det er at den viser alle filer og mapper i hvad $path man har sat den til og den skal vise et lille billede som jeg selv vælger ud for hver fil/mappe som viser 2 forskellige billeder som afgør hvis den er størrer eller mindre end 2GB
Undskyld jeg forklarer tingene en masse gange, vil bare være sikker på jeg har det på det rene, vil gerne komme videre hurtigts muligt:)
<?php
// install variables
$host = "G:\MOVIES"; // the folder where index.php is located
// path for folder, file, buttons(back and home) images
$img_back="..\images/back.gif";
$img_folder="..\images/folder.gif";
$img_file="..\images/file.gif";
$img_home="..\images/home.gif";
// end of install variables
// returns the extension of a file
function strip_ext($name)
{
$ext = substr($name, strlen($ext)-4, 4);
if(strpos($ext,'.') === false) // if we have a folder element
{
return " "; // we return a string of space characters for later sort,
// so that the folder items remain on the first positions
}
return $ext; // if we have a file we return the extension - .gif, .jpg, etc.
}
// returns the files from the $path and returns them in an array
function getFiles($path) {
$files = array();
$fileNames = array();
$i = 0;
// build
if (is_dir($path)) {
if ($dh = opendir($path)) {
while (($file = readdir($dh)) !== false) {
if (($file == ".") || ($file == "..")) continue;
$fullpath = $path . "/" . $file;
//$fkey = strtolower($file);
$fkey = $file;
while (array_key_exists($fkey,$fileNames)) $fkey .= " ";
$a = stat($fullpath);
$files[$fkey]['size'] = $a['size'];
if ($a['size'] == 0) $files[$fkey]['sizetext'] = "-";
else if ($a['size'] > 1024 && $a['size'] <= 1024*1024) $files[$fkey]['sizetext'] = (ceil($a['size']/1024*100)/100) . " K";
else if ($a['size'] > 1024*1024) $files[$fkey]['sizetext'] = (ceil($a['size']/(1024*1024)*100)/100) . " Mb";
else $files[$fkey]['sizetext'] = $a['size'] . " bytes";
$files[$fkey]['name'] = $file;
$e = strip_ext($file); // $e is the extension - for example, .gif
$files[$fkey]['type'] = filetype($fullpath); // file, dir, etc
$k=$e.$file; // we use this string for sorting the array elements by extension and filename;
$fileNames[$i++] = $k;
}
closedir($dh);
} else die ("Cannot open directory: $path");
} else die ("Path is not a directory: $path");
sort($fileNames,SORT_STRING); // sorting
$sortedFiles = array();
$i = 0;
foreach($fileNames as $f) {
$f = substr($f, 4, strlen($f)-4); // we remove the extension we added in front of the filename for sorting
if($files[$f]['name'] !='') $sortedFiles[$i++] = $files[$f];
}// ends the foreach where we build the final sorted array
return $sortedFiles;
}
// folder navigation code
$startdir = "./";
if(isset($_GET['dir'])) {
$prev = $_GET['dir'];
$folder = $_GET['dir'];
echo "<a href=\"java script:history.go(-1)\"><img src=\"$img_back\"></a> <a href=\"$host\"><img src=\"$img_home\"></a> <br/><br/>";
} else { $folder = $startdir; $prev='';}
// end folder navigation code
$files = getFiles($folder);
foreach ($files as $file) {
if(strip_ext($file[name])!='.php'){
$image = $img_file;
if($file[type]=='dir') {
$image = $img_folder;
$cmd='?dir='.$prev.$file[name].'/';
}// if the element is a directory
else $cmd=$prev.$file[name];
echo "<a href=\"$cmd\" title=\"$file[type], $file[sizetext]\"><img src=\"$image\" /> $file[name]</a> <br/>";
}//if strip_ext
}//foreach
?>