PHP-Skript - Frage....

Dieses Thema im Forum "Software" wurde erstellt von MacBelwinds, 12. Februar 2005.

  1. MacBelwinds

    MacBelwinds New Member

    Ich möchte mit folgendem Skript Dateien auf meinen Server laden. Das funktioniert auch, aber ich möchte dem Skript ein bestimmtes Verzeichnis zum Ablegen der Dateien mitteilen. Wie bzw. an welcher Stelle des Skripts geht das?

    Danke im Voraus!

    <?php

    // Variabeln festlegen
    $max_byte_size = 2097152;
    $allowed_types = "(doc|pdf|txt|rtf|jpg|jpeg|gif|bmp|png)";

    // Formular wurde abgeschickt
    if($_POST["submit"] == "Upload") {

    // Wurde wirklich eine Datei hochgeladen?
    if(is_uploaded_file($_FILES["file"]["tmp_name"])) {

    // Gültige Endung? ($ = Am Ende des Dateinamens) (/i = Groß- Kleinschreibung nicht berücksichtigen)
    if(preg_match("/\." . $allowed_types . "$/i", $_FILES["file"]["name"])) {

    // Datei auch nicht zu groß
    if($_FILES["file"]["size"] <= $max_byte_size) {

    // Alles OK -> Datei kopieren
    if(copy($_FILES["file"]["tmp_name"], $_FILES["file"]["name"])) {

    echo "Datei erfolgreich hochgeladen!
    ";
    echo "Name: " . $_FILES["file"]["name"] . "
    ";
    echo "Gr&ouml;&szlig;e: " . $_FILES["file"]["size"] . " Byte
    ";
    echo "MIME-Type: " . $_FILES["file"]["type"] . "
    ";
    echo "Link: <a href=\"" . $_FILES["file"]["name"] . "\">" . $_FILES["file"]["name"] . "</a>";

    }
    else {

    echo "Datei konnte nicht hochgeladen werden.";

    }

    }
    else {

    echo "Die Datei darf nur eine Dateigr&ouml;&szlig;e von " . $max_byte_size . " Byte besitzen.";

    }

    }
    else {

    echo "Die Datei besitzt keine ungültige Endung.";

    }

    }
    else {

    echo "Keine Datei zum Hochladen angegeben.";

    }

    }
    else {

    echo "Bitte benutzen Sie das Upload Formular.";

    }

    ?>
     
  2. kawi

    kawi Revolution 666

    Ich würde sagen hier rein.
    Ich habe ein ähnliches upload script, leider hab ich mich in den letzten 16 Monaten nicht mehr so sehr mit PHP beschäftigt, aber in meinem script gibt es eine ähnliche routine mit pfadangabe.
    Guck mal, das sitzt im copy befehl. Bau einfach mal testweise ein paar parts aus meinem in deins ein ;-)

    if(@copy($bild,"pix/$bild_name")){

    echo "upgeloadet!
    "
    ;


    ($bild ist bei mir die Variable die vom Dateiuploadfeld übergeben wird)
    ich denke mit teilen von meinem müsstest du deins auch mit pfadangabe zum laufen kriegen.
    Die Dateien landen bei meinem jetzt im Unterordner /pix
     
  3. MacBelwinds

    MacBelwinds New Member

    Danke, kawi. Aber damit kriege ich es leider noch nicht hin...

    An sich ist es ja auch nicht "lebensnotwendig", aber ich will halt ein bisschen "Ordnung halten". Das Ganze soll eine Materialbörse werden, und ich will nicht, dass man in der Dokument-Suche auch die Dateien der Webseite selbst findet! Also, weitere Tipps willkommen!!!
     
  4. Pahe

    Pahe New Member

    Hallo,

    Hier hilft dann nur ein Angebot eines Inhaltsverzeichnisses in einem Formular bzw. Suche nur in einer Indexdatei zulassen.

    Eine weitere Alternative wäre MySQL.

    Gruß
    Pahe
     
  5. MacBelwinds

    MacBelwinds New Member

    Den Tipp mit der Indexdatei verstehe ich nicht, aber MySQL ist bestimmt ein guter Rat. Leider muss man das bei den meisten Providern wieder extra bezahlen, oder?
     
  6. Pahe

    Pahe New Member

    Hallo,

    eine Indexdatei würde neben dem Inhaltsverzeichnis auch noch ein paar Suchbegriffe enthalten, die eine Suche erlauben. Die Suche muss dann in PHP abgewickelt werden. Wenn die Indexdatei gut strukturiert aufgebaut ist, ist auch der Programmieraufwand entsprechend geringer.

    Die einfachste Art ist aber - dem Benutzer ein Inhaltsverzeichnis anzubieten, das ausreichend Informationen zum Inhalt enhält, sodass der Benutzer auch ohne Suche einigermaßen zielsicher das heraussuchen kann was ihn interessiert.
    Vom Inhaltsverzeichnis wird direkt mit dem Inhaltsseiten verlinkt.

    Zu MySQL: Sicher kostet das beim Provider extra aber nur in der Größenordnung von 1-2€ pro Monat. Muß man halt abwägen ob der erhöhte Programmieraufwand für eine Indexdatei oder die Kosten für eine Datenbankanbindung lieber in Kauf genommen werden.

    Für einfache Sachen habe ich jedenfalls mit dem Inhaltsverzeichnis die besten Erfahrungen gemacht (bis etwa 50 Dateien mit Inhalt). Hier kann man durch einfaches PHP-Skript und Seitenmenü schon gut vorfiltern und damit auch das Inhaltsverzeichnis übersichtlich halten.

    Gruß
    Pahe
     
  7. Pahe

    Pahe New Member

    Hallo,

    noch was zum Hochladen bei Verwendung von Inhaltsverzeichnis:

    Da macht man im Vorlaufformular ein Feld für den Inhaltsverzeichnis-Eintrag dazu und damit ist es auch schon erledigt. Dieser Feldinhalt und gleichzeitig der Link auf die Datei selbst wird dann vom PHP-Skript an die Inhaltsverzeichnisdatei angehängt.

    Gruß
    Pahe
     
  8. MacBelwinds

    MacBelwinds New Member

    Hättest Du so ein Inhaltsverzeichnis-Skript irgendwo "griffbereit"?
     

Diese Seite empfehlen