Hallo!
Ich habe folgendes kleines Script geschrieben, dass man in einen Ordner legen kann (Ordnerrechte CMOD 777) und das einem des Inhalt des Ordners (Dateien und Unterordner), sowie die jeweiligen Größen anzeigt. Dazu befindet sich darin auch ein Dateiupload-Formular, um einzelne Dateien in das Hauptverzeichnis, wo die Scriptdatei liegt, hochgeladen zu können.
Mein Problem:
Nun möchte ich die Ausgabe (Anzeigenreihenfolge) der Ordnerinhalte so bestimmen, das Unterordner (herausgefiltert durch if Abfrage nach Größe -> 4096 Bytes) und restlichen Dateien geordnet werden. Unterordner zuerst, dann die Dateien darunter.
Meine Frage:
Was muss ich noch einbauen? (Möglichst ohne das komplette Abfrageschema, Inhalt und Größe, umbauen zu müssen.) Ich weiß das es natürlich bessere Methoden gibt aber das hab ich mir bis hierhin alles alleine zusammengereimt (ein paar Codepasagen stammen hier aus dem Tutorials.de Hilfeforum)
Hier mein Script (eine PHP-Datei):
Ich habe folgendes kleines Script geschrieben, dass man in einen Ordner legen kann (Ordnerrechte CMOD 777) und das einem des Inhalt des Ordners (Dateien und Unterordner), sowie die jeweiligen Größen anzeigt. Dazu befindet sich darin auch ein Dateiupload-Formular, um einzelne Dateien in das Hauptverzeichnis, wo die Scriptdatei liegt, hochgeladen zu können.
Mein Problem:
Nun möchte ich die Ausgabe (Anzeigenreihenfolge) der Ordnerinhalte so bestimmen, das Unterordner (herausgefiltert durch if Abfrage nach Größe -> 4096 Bytes) und restlichen Dateien geordnet werden. Unterordner zuerst, dann die Dateien darunter.
Meine Frage:
Was muss ich noch einbauen? (Möglichst ohne das komplette Abfrageschema, Inhalt und Größe, umbauen zu müssen.) Ich weiß das es natürlich bessere Methoden gibt aber das hab ich mir bis hierhin alles alleine zusammengereimt (ein paar Codepasagen stammen hier aus dem Tutorials.de Hilfeforum)
Hier mein Script (eine PHP-Datei):
Code:
<?php
/* Kaufm Filemanage (c) 2005 Matthias Kaufmann. All rights reserved.
Version: 0.1.3
Website: http://kaufm.de/
----------------------------------------------------------------------
$dir_url: Insert the path where this PHP file stays,
for example (http://www.domain.xy/abc) without / at the end!
It will show you the content of the directory where it stays. */
$dir_url = 'http://www.domain.xy/abc';
/* $upload_filesize_bytes: Insert the max. filesize in bytes which
will be permitted for uploading files.
1 KB = 1024 Bytes
1 MB = 1024 KB = 1048576 Bytes */
$upload_filesize_bytes = '26214400';
/* Don't change anything behind this!
----------------------------------------------------------------------
Entscheidung ob maximal zugelassene Dateigröße bei
Uploads in KB oder MB angezeigt wird.*/
if($upload_filesize_bytes < '1048576') {
$upload_filesize_kb_dec = $upload_filesize_bytes / 1024;
$upload_filesize_kb_full = floor($upload_filesize_kb_dec);
$upload_filesize = "$upload_filesize_kb_full KB";
}
else {
$upload_filesize_mb_dec = $upload_filesize_bytes / 1048576;
$upload_filesize_mb_full = floor($upload_filesize_mb_dec);
$upload_filesize = "$upload_filesize_mb_full MB";
}
// HTML Beginn und Uploadformular
echo "<html>
<head>
<title>$dir_url/</title>
</head>
<body topmargin=\"10\" leftmargin=\"10\" marginheight=\"10\" marginwidth=\"10\" bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#0000FF\" vlink=\"#800080\" alink=\"#0000FF\">
<a name=\"top\"></a>
<h1 align=\"center\">$dir_url/</h1>
<fieldset><legend><b>Fileupload</b></legend>
<p>Max. filesize $upload_filesize per upload; existing files with same name will be overwrited without warning!</p>
<form enctype=\"multipart/form-data\" action=\"?action=upload\" method=\"post\">
<input type=\"file\" name=\"file\"> <input type=\"submit\" value=\"Upload into $dir_url/\">
</form>";
// Uploadvorgang
if( $_GET[action] == 'upload') {
$tempname = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$size = $_FILES['file']['size'];
if($size > $upload_filesize_bytes) {
$err[] = "<p>Error: Your file is greater than $upload_filesize!</p>";
}
if(empty($err)) {
copy("$tempname", "$name");
echo "<p>File <a href=\"$dir_url/$name\">$name</a> was uploaded successfully!</p>";
}
else {
foreach($err as $error)
echo "$error";
}
}
echo "\n </fieldset>
<br />
<fieldset><legend><b>Content of $dir_url/</b></legend>
<table width=\"100%\" cellspacing=\"0\" cellpadding=\"0\">";
// Auslesen des Ordners
$show_dir = opendir('.');
while (false !== ($file = readdir ($show_dir))) {
$bytes_dec = filesize($file);
$bytes_full = floor($bytes_dec);
// Erkennung ob Ordner oder Datei, danach werden Ordner gekennzeichnet
if($bytes_full == '4096') {
$file_type = '<b>DIR:</b> ';
}
else {
$file_type = '';
}
// Entscheidung ob Dateigrößen in Bytes oder KB angezeigt werden
if($bytes_dec < '1024') {
$file_size = "$bytes_full Bytes";
}
else {
$kb_dec = $bytes_dec / 1024;
$kb_full = floor($kb_dec);
$file_size = "$kb_full KB";
}
echo "\n <tr>
<td width=\"99%\" align=\"left\" style=\"padding:2px;\">
<p>$file_type<a href=\"$dir_url/$file\">$file</a></p>
</td>
<td width=\"1%\" align=\"right\" style=\"padding:2px;\">
<p><nobr>$file_size</nobr></p>
</td>
</tr>
<tr>
<td height=\"1\" bgcolor=\"#808080\" colspan=\"2\"></td>
</tr>";
}
closedir($show_dir);
// Restlicher HTML-Code
echo "\n </table>
</fieldset>
<br />
<fieldset><legend><b>Legend</b></legend>
<p><b>DIR:</b> = sub-directory<br />
<font color=\"#0000FF\"><u>Blue underlined text</u></font> = link<br />
<font color=\"#800080\"><u>Violet underlined text</u></font> = already visited link</p>
</fieldset>
<p align=\"center\"><b><a href=\"#top\">⇑</a></b><br />
<br />
powered by <b>Kaufm Filemanage 0.1.3</b> © 2005 Matthias \"Wingsydex\" Kaufmann. All rights reserved.<br />
Website: <a href=\"http://kaufm.de/\" target=\"_blank\">http://kaufm.de/</a><br />
Please send your feedback about this script to <a href=\"mailto:mat@kaufm.de?subject=Kaufm Filemanage\">mat@kaufm.de</a>, thanks!</p>
</body>
</html>";
?>