26.05.2013, 16:11
Hallo
Ich habe auf meinem Webspace mit (nicht selbstgeschriebenen!) php Scripts eine Upload Seite eingerichtet, und dann noch eine Upload Liste, die die hochgeladenen Dateien in einer Liste anzeigt. Jetzt möchte ich aber, dass man auch gleich bei dieser Liste die Dateien löschen kann, so dass ich das nicht immer zuhause mit Filezilla machen muss. Am praktischsten wäre, wenn neben jeder Datei ein Button wäre, und wenn ich auf den klicke, kann wird die Datei gelöscht.
Das Script für die Upload Liste ist das folgende:
Ich habe auf meinem Webspace mit (nicht selbstgeschriebenen!) php Scripts eine Upload Seite eingerichtet, und dann noch eine Upload Liste, die die hochgeladenen Dateien in einer Liste anzeigt. Jetzt möchte ich aber, dass man auch gleich bei dieser Liste die Dateien löschen kann, so dass ich das nicht immer zuhause mit Filezilla machen muss. Am praktischsten wäre, wenn neben jeder Datei ein Button wäre, und wenn ich auf den klicke, kann wird die Datei gelöscht.
Das Script für die Upload Liste ist das folgende:
PHP-Code:
<script language="php">
$verzeichnisname="/var/customers/webs/swat6/ah/upload/";
/*
"Absoluter" Pfad zum Verzeichnis im Dateisystem des Webservers.
Eine einfache Möglichkeit, um diesen Pfad herauszufinden:
Machen Sie eine Datei namens phpinfo.php mit folgendem Inhalt:
<?php phpinfo(); ?>
Laden Sie diese Datei in das Verzeichnis, dessen Inhalt aufgelistet
werden soll. Rufen Sie die Datei im Browser über HTTP ab.
Unter "Apache Environment" in der Variablen "SCRIPT_FILENAME"
steht der ganze Pfad.
*/
$urlbasis="http://www.adrian-hirt.ch/upload/";
/* Pfad zum Verzeichnis von aussen gesehen, d.h. mit http:// beginnend. */
date_default_timezone_set('Europe/Zurich'); /* notwendig ab PHP 5.3, sonst Warnung wegen nicht gesetzter Zeitzone. */
function filesizehuman($bytes)
/* Gibt die Dateigrösse in B, kB, MB oder GB aus, also "menschenlesbar" */
{
$output="$bytes B"; /* Grundsätzlich und wenn unter 1024 Byte: Angabe in B */
if ($bytes>=1024) /* Ab 1024 Byte: Angabe in kB mit 1 Dezimalstelle */
{
$kb=sprintf("%01.1f",$bytes/1024);
$output="$kb kB";
}
if ($bytes>=100*1024) /* Ab 100 kB: Angabe in kB ohne Nachkommastellen */
{
$kb=round($bytes/1024);
$output="$kb kB";
}
if ($bytes>=1024*1024) /* Ab 1024 kB: Angabe in MB mit 1 Nachkommastelle */
{
$mb=sprintf("%01.1f",$bytes/1048576);
$output="$mb MB";
}
if ($bytes>=1024*1024*1024) /* Ab 1024 MB: Angabe in GB mit 1 Nachkommastelle */
{
$gb=sprintf("%01.1f",$bytes/1073741824);
$output="$gb GB";
}
return $output;
}
/* Array-Variablen anlegen: */
$dateiliste1 = array();
$dateiliste = array();
$bilderdim = array();
/* Durchlauf: Verzeichnis einlesen, Dateien in Liste erfassen, sortieren: */
$verzeichnis = opendir($verzeichnisname);
while(($eintrag = readdir($verzeichnis))!= false)
{
if(!is_dir("$verzeichnisname/$eintrag") AND (($eintrag!=".htaccess") AND ($eintrag!="verboten.html")))
{ array_push($dateiliste1,$eintrag); }
}
closedir($verzeichnis);
natcasesort($dateiliste1);
$dateinummer=0;
foreach($dateiliste1 as $eintrag2)
{
$dateinummer++;
$dateiliste[$dateinummer]=$eintrag2;
}
/* Ende Verzeichnis einlesen u.s.w. */
/* Ausgabe: */
/* echo "<h2>Datei-Liste</h2>\n"; */
$dateianzahl=count($dateiliste);
if ($dateianzahl<=0)
{ echo "<p><b>Keine (0) Dateien im Verzeichnis [$urlbasis]</b></p>\n"; }
else /* d.h. wenn mindestens 1 Datei vorhanden: */
{
echo "<p>Total $dateianzahl Datei(en) im Uploadverzeichnis</p>\n";
echo "<table border='1' width='100%' cellpadding='3' cellspacing='0'>\n";
echo "<tr>";
echo "<th align='left'>Nr.</th>";
echo "<th align='left'>Dateiname</th>";
echo "<th align='right'>Grösse</th>";
echo "<th align='left'>Hochgeladen</th>";
echo "<th align='left'>Typ</th>";
echo "<th align='left'>Dim.</th>";
echo "</tr>";
foreach ($dateiliste as $dateinr => $dateiname)
{
$test = $verzeichnisname . "/" . $dateiname;
echo "<tr>\n";
echo " <td align='left'>$dateinr</td>\n";
echo " <td align='left'><a href='$urlbasis$dateiname'>$dateiname</a></td>\n";
echo " <td align='right'>" . filesizehuman(filesize($test)) . "</td>\n";
echo " <td align='left'>" . strftime("%a, %d.%b.%Y, %H:%M", filemtime($test)) . "</td>\n";
$bilddim = getimagesize($test);
if ($bilddim)
{
echo " <td align='left'>".strtoupper(image_type_to_extension($bilddim[2],false))."</td>\n";
echo " <td align='left'>".$bilddim[0]."x".$bilddim[1]."</td>\n";
}
else
{
echo " <td align='left'>".substr (strrchr(strtoupper($test),"."),1 )."</td>\n";
echo " <td align='left'>-</td>\n";
}
echo "</tr>\n\n";
} /* Ende foreach */
echo "</table>";
} /* Ende ELSE-Teil für wenn Dateien vorhanden sind. */
</script>
So sieht die Liste im Moment aus:
http://adrian-hirt.ch/upload/liste.jpg(!https)
Wie schon gesagt, ich habe das Script nicht selber geschrieben, aber ich wäre froh, wenn mir jemand helfen kann ^^
LG
Swat 6