Предлагам към системата за качване да има и търсачка на файловете, за да бъде по-лесно намирането им като станат повече. Ето едно кодче и ако искаш може да го поставиш:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Search script</title>
</head>
<body>
<table>
<tr><td>
<form action="./search.php" method="get">
<b>Търсене:</b> <input type="text" name="s" class="field" size="65" value="<?php
$s = htmlspecialchars($_GET['s'], ENT_QUOTES); ///// http://bg2.php.net/manual/en/function.htmlspecialchars.php
echo $s; ?>">
<input type="submit" value="Търси" class="button">
</form>
<?php
if ($s !=null ){
echo "</td></tr>";
}
?>
<?php
$sort = htmlspecialchars($_GET['sort'], ENT_QUOTES); ///// http://bg2.php.net/manual/en/function.htmlspecialchars.php
function size($path){ /////функция, за превръщане на байтове в по-големи единици
$size = filesize($path);
if($size >= 1073741824)
{
$size = round($size / 1073741824 * 100) / 100;
$size=substr($size,0 , 4);
$size = $size . " GB";
}
elseif($size >= 1048576)
{
$size = round($size / 1048576 * 100) / 100;
$size=substr($size,0 , 4);
$size = $size . " MB";
}
elseif($size >= 1024)
{
$size = round($size / 1024 * 100) / 100;
$size=substr($size,0 , 4);
$size = $size . " KB";
}
else
{
$size=substr($size,0 , 4);
$size = $size . " B";
}
echo $size;
}
function show($dir){ /////с тази функция обхождаме директорията и директориите в нея
global $i; ///// правим $i глобална, за да важи нейната стойност и извън фукцията
global $file; ///// правим $file глобална, за да важи нейната стойност и извън фукцията
$s = htmlspecialchars($_GET['s'], ENT_QUOTES); ///// http://bg2.php.net/manual/en/function.htmlspecialchars.php
$directory = opendir($dir); ///// отваряме зададената папка
while ($files = readdir($directory)) ///// изкарваме файловете от директорията
{
if (($files != "..") AND ($files != ".")){ ///// ако файла е .. или . (т.е. предишната директория) го пропускаме
$path = $dir.'/'.$files; ///// определяме пълния път до файла
if (!is_dir($path)){ ///// ако файла не е директоктория продължаваме нататък
if (eregi($s, $files)) { ///// ако във файла се съдържа ключовата дума която търсим продължаваме нататък
$i++; ///// покачваме стойността на $i с 1
$file[]=array ( ////// http://bg2.php.net/manual/en/function.array.php
"name" => $files, ///// придаваме стойност на name => $files -> името на файла
"dir" => $dir, ///// придаваме стойност на dir => $dir -> директорията на файла
"path" => $path ///// придаваме стойност на path => $path -> линка към файла
);
}
}
if(is_dir($path)) { ////// ако файла е директория продължаваме нанатък и отново следва функцията която преглежда папката
show($path); ///// функцията за преглеждане на папката. Докато има папки, те ще се отварят и преглеждат за файлове съдържащи търсените от нас ключови думи
}
}
}
}
if ($s != null){ ///// ако заявката за търсене не е празна
show ("."); ///// задаваме от коя папка да започне търсенето на файлове
$num = count($file); ///// брой $file
if ($num != null){ ////// ако $num няма стойност, показва че няма намерени файлове
$found="Намерени файлове: ".$i;
} else { ///// ако $num има стойност, показва колко са намерените файлове
$found="Няма намерени файлове";
}
echo "
<tr>
<td>
<table width=\"100%\" align=\"left\" style=\"font-size:12px;font-family: Tahoma;\">
<tr>
<td style=\"border:1px solid #DBDBDB;\" colspan=\"3\">
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap\">Резултати за: ".$s."</div>
</td>
</tr>
<tr>
<td style=\"border:1px solid #DBDBDB;\" colspan=\"3\">
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap\">".$found."</div>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table width=\"580px\" align=\"left\" style=\"font-size:12px;font-family: Tahoma;\">
<tr>
<td style=\"border:1px solid #DBDBDB;\" width=\"20px\" align=\"center\">
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap;height:15px;\">
</div>
</td>
<td style=\"border:1px solid #DBDBDB;\" width=\"510px\" align=\"left\" colspan=\"2\">
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap;height:15px;\">
<a href=\"?s=".$s."";
if ($page != null){ ///// ако $page има стойност, т.е. избрана е страница
echo "&page=".$page."";
}
echo "&sort=name\">Сортирай по име</a>";
if ($sort == "name"){ ///// ако вече е избрано да се сортират файловете по име се показва опция за премахване на сортирането
echo " <a href=\"?s=".$s;
if ($page != null){ ///// ако $page има стойност, т.е. избрана е страница
echo "&page=".$page;
}
echo "\"><b>[X]</b></a>";
}
echo "</div>
</td></tr>";
if ($num > "30"){ ///// ако намерените файлове са повече от 30
$page_num=ceil($num/30); ///// определяне броя на страниците. ceil() - закръгля към по-голямото число
if ($page != null){ ///// ако $page има стойност, т.е. избрана е страница
$num_for=30*$page; ////// определя се до кой файл да се изреждат останалите
$i_value=$num_for-30; ///// определя се от кой файл да започнат се изреждат останалите. т.е. от $i_value до $num_for
$rows = $num_for - $num; ///// редовете за изреждане (<tr>). Попринцип те са 30, но на последната страница се получават празни редове. За това е нужна тази променлива
if ($page == $page_num){ ///// ако избраната страница е равна на броя на страници, т.е. ако е последна
$num_for=$num_for-$rows; ///// броя на редовете, които ще се изреждат на последната страница, за да не останат празни редове
}
} else { ///// ако не е избрана страница се показват първите 30 файла
$i_value="0";
$num_for="30";
}
} else { ///// ако файловете са по-малко от 30 се показват всичките
$i_value="0";
$num_for=$num;
}
for ($i=$i_value;$i<$num_for;$i++){ ///// for loop
if (strlen($file[name])>"75"){ ///// ако дължината на името е по-дълга от 75 символа
$totchki='...';
} else { ///// ако е по-малка от 75 символа
$totchki='';
}
$file[$i][name]=substr($file[$i][name],0 , "75"); ///// махат се всички символи след 75тия
if ($sort == "name"){ ///// ако е избрано да се сортират файловете по име
sort($file); ///// http://bg2.php.net/manual/en/function.sort.php
}
//////////////// ИЗРЕЖДАНЕ НА ФАЙЛОВЕТЕ В ОТДЕЛНИ РЕДОВЕ - START ////////////////
echo "<tr>
<td style=\"border:1px solid #DBDBDB;\" width=\"20px\" align=\"center\">
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap;height:15px;\">
<a href=\"".$file[$i][dir]."\" onClick=\"this.target='_blank'\">
<img src=\"folder.png\" height=\"15px\" width=\"15px\"></a>
</div>
</td>
<td style=\"border:1px solid #DBDBDB;\" width=\"510px\" align=\"left\">
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap;height:15px;\" onmouseover=\"this.style.backgroundColor='#F9F9F9'\" onmouseout=\"this.style.backgroundColor='#F2F2F2'\">
<a href=\"".$file[$i][path]."\">".$file[$i][name].$totchki."</a>
</div>
</td>
<td style=\"border:1px solid #DBDBDB;\" width=\"50px\" align=\"center\">
<div style=\"padding:1px; background-color: #F2F2F2; white-space:nowrap; color: #0078cc;height:15px;\">";
size($file[$i][path]);
echo "</div></td></tr>"."\n";
//////////////// ИЗРЕЖДАНЕ НА ФАЙЛОВЕТЕ В ОТДЕЛНИ РЕДОВЕ - END ////////////////
}
if ($num > "30"){ ///// ако броя на файловете е почю-голям от 30
$page_num=ceil($num/30); ///// определя се броя на страниците
//////////////// ИЗРЕЖДАНЕ НА ЛИНКОВЕ КЪМ РАЗЛИЧНИТЕ СТРАНИЦИ - START ////////////////
echo "<tr><td colspan=\"3\" style=\"border:1px solid #DBDBDB;white-space:nowrap;font-size:13px;font-family: Tahoma;\">";
for($a=1;$a<=$page_num;$a++){ ///// for loop
if ($a==$page){ ///// ако в момента разглеждате дадената страница, тя не излиза като линк
echo " <b>".$a."</b> |";
} else { ///// изреждат се линковете към различните страници
echo " <a href=\"?s=".$s."&page=".$a;
if ($sort == "name"){
echo "&sort=name";
}
echo "\">".$a."</a> |";
}
}
echo "</td></tr>";
}
//////////////// ИЗРЕЖДАНЕ НА ЛИНКОВЕ КЪМ РАЗЛИЧНИТЕ СТРАНИЦИ - END ////////////////
echo "</table>";
}
?>
</td></tr></table>
</body>
</html>