Download-Script
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angepasst code
aufgelisteten dateien
ausgeben
bekannten verzeichnisses
break
code
datei
einlesen
erfolgsmeldung
ermitteln
fehler
fehlermeldung
file
ordner
realisieren
schlauch
situation
typ
verschieben
verzeichnis
-
Hey Leute,
ich habe mir (nach langen Nächten) dieses Uploadscript mit PHP zusammengebastelt.
<?php // Prüfen ob eine Datei geschickt wurde, falls nicht wurde das Formular noch nicht gesendet if (!isset($_FILES[\'meine_datei\'])) { ?> <form action=\"upload.php\" method=\"post\" enctype=\"multipart/form-data\"> <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1048576\" /> Datei: <input type=\"file\" name=\"meine_datei\" /> <input type=\"submit\" value=\"Hochladen\" /> </form> <?php } else { // Quelldatei im tmp-Ordner $source_file = $_FILES[\'meine_datei\'][\'tmp_name\']; // Zieldatei im dateien-Ordner $target_file = \'schoolworx/\' . $_FILES[\'meine_datei\'][\'name\']; // Prüfen ob der Upload erfolgreich war if ($_FILES[\'meine_datei\'][\'error\'] == UPLOAD_ERR_OK) { // Maximal erlaubte Dateigröße (in Bytes) $max_size = 10485760; // Erlaubte Dateierweiterungen $extensions = array(\'txt\', \'jpg\', \'png\', \'zip\', \'rar\', \'doc\', \'xls\'); // Erweiterung der Datei ermitteln $file_extension = substr(strrchr($_FILES[\'meine_datei\'][\'name\'], \'.\'), 1); // Dateigröße prüfen if (filesize($_FILES[\'meine_datei\'][\'tmp_name\']) > $max_size) { echo \'Die Dateigröße überschreitet das Maximum von \' . $max_size . \'Bytes!\'; // Dateierweiterung prüfen } elseif (!in_array($file_extension, $extensions)) { echo \'Die Datei muss vom Typ \"\' . implode(\', \', $extensions) . \'\" sein!\'; // Versuchen die Datei aus dem Quell- ins Zielverzeichnis zu verschieben } elseif (move_uploaded_file($source_file, $target_file)) { // Erfolgsmeldung ausgeben echo \'Datei erfolgreich hochgeladen!\'; } else { // Fehlermeldung ausgeben echo \'Beim Verschieben der Datei trat ein Fehler auf!\'; } } else { // Fehler ermitteln $error = \'\'; switch ($_FILES[\'meine_datei\'][\'error\']) { case UPLOAD_ERR_INI_SIZE: $error = \'Die hochgeladenen Datei überschreitet das in der php.ini gesetzte Maximum!\'; break; case UPLOAD_ERR_FORM_SIZE: $error = \'Die hochgeladenen Datei überschreitet die in MAX_FILE_SIZE gesetzte Größe!\'; break; case UPLOAD_ERR_PARTIAL: $error = \'Die hochgeladene Datei wurde nur teilweise übertragen!\'; break; case UPLOAD_ERR_NO_FILE: $error = \'Es wurde keine Datei hochgeladen!\'; } // Fehlermeldung ausgeben echo \'Fehler beim Hochladen: <b>\' . $error . \'</b>\'; } // Zurück-Link anbieten um eine weitere Datei hochzuladen echo \'<br /><br /><a href=\"upload.php\">Zurück</a>\'; } ?>
Ich möchte jetzt auch ein Downloadscript erstellen, dass alle Dateien die im besagten Uploadverzeichnis auflistet und zum Download anbietet. Ich steh grad nur irgendwie völlig auf dem Schlauch wie ich das realisieren könnte.
Könnt ihr mir da vielleicht ein wenig weiter helfen?
Vielen Dank im Voraus
Erik
edit by tct
php-code formatiert
Beitrag geändert: 16.4.2008 22:28:44 von tct -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
klar, das Auslesen eines Verzeichnisses erfolgt über einen Verzeichnis Handler. Den erstellst du über die Funktion opendir().
Hab mal den Code aus der php Doc an deine Situation angepasst:
<?php $dir = \'./schoolworx/\'; // Öffnen eines bekannten Verzeichnisses und danach seinen Inhalt einlesen if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if (is_file($file)) { echo \'<a href=\"\'.$file.\'\">\'.$file.\'</a><br />\'; } } closedir($dh); } } ?>
Beitrag geändert: 16.4.2008 21:52:24 von prismapanda -
Vielen Dank,
das hat mir schonmal viel weitergeholfen, allerdings ist das ja nur eine Auflistung. Ich möchte aber, dass hinter jeder der aufgelisteten Dateien ein Download-Button namens download.jpg ist wo man die Datei dann downloaden kann.
Erik -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage