Hallo,
ich habe meine ersten Versuche mit PHP gemacht und habe jetzt ein paar kleine Probleme.
Ich möchte folgenden Code benutzen, um einen Ordner auszulesen und den Inhalt zum download verfügbar machen.
Die Probleme (siehe Kommentare):
1. Wenn ich den Link einer Datein anklicke, wechselt die Übersicht immer in den Ordner, welcher in $downpath gespeichert ist.
2. Wie kann ich dem Browser eine Datei mit dem Link $path."/".$download zum Download anbieten?
3. Wieso wird bei einem Klick auf .. der Pfad automatisch eine Ebene höher gesetzt, jedoch nur bis $downpath, ohne dass $path bearbeitet wird
4. Wie kann ich Pfade mit Leerzeichen auslesen?
Danke
ich habe meine ersten Versuche mit PHP gemacht und habe jetzt ein paar kleine Probleme.
Ich möchte folgenden Code benutzen, um einen Ordner auszulesen und den Inhalt zum download verfügbar machen.
PHP-Code:
<html>
<body>
<?php
$downpath = 'e:/download';
$filetype = 'txt'
if (isset($path) == false) $path = $downpath;
if (empty($download)&& empty($directory))
{
auflisten($path);
}
else
{
if (empty($directory) == false) directory($path, $directory, $downpath);
if (empty($download) == false) download($path, $download);
}
function auflisten($path)
{
echo "<a href=\"$PHP_SELF?directory=root\">Download-Übersicht</a><br>";
echo "<a href=\"$PHP_SELF?directory=..\">..</a><br><br><br>";
$handle = opendir($path);
while (false !== ($file = readdir($handle)))
{
//Datei & Endung
if (is_file($path."/".$file) && substr(strrchr($file,'.'),1) == $filetype)
echo "<a href=\"$PHP_SELF?download=$file\">$file</a><br>";
//Ordner & nicht .. oder .
if (is_dir($path."/".$file) && $file <> '..' && $file <> '.')
echo "<a href=\"$PHP_SELF?directory=$file\">$file</a><br>";
}
closedir($handle);
}
function directory($path, $directory, $downpath)
{
//wenn Leerzeichen in Pfad, dann Fehler
if ($directory == "..")
{
//3. Problem
//Warum Pfadänderung ?
auflisten($path);
}
else if ($directory == "root")
{
$path = $downpath;
auflisten($path);
}
else
{
$path = $path."/".$directory;
auflisten($path);
}
}
function download($path, $download)
{
//1. Problem
//Wenn Download, dann wird Pfad ($path) auf $downpath zurückgesetzt
//2. Problem
//Download = $path."/".$download
auflisten($path);
}
?>
</body>
</html>
1. Wenn ich den Link einer Datein anklicke, wechselt die Übersicht immer in den Ordner, welcher in $downpath gespeichert ist.
2. Wie kann ich dem Browser eine Datei mit dem Link $path."/".$download zum Download anbieten?
3. Wieso wird bei einem Klick auf .. der Pfad automatisch eine Ebene höher gesetzt, jedoch nur bis $downpath, ohne dass $path bearbeitet wird
4. Wie kann ich Pfade mit Leerzeichen auslesen?
Danke
EDIT:
line break sponsored by asp2php. Bitte zukünftig selbst dafür sorgen,
dass man beim lesen nicht scrollen muss
Kommentar