Upload in Unterverzeichnis

  • Hallo zusammen,


    ich habe mir aus verschiedenen Scripten ein Uploadscript zusammengebastelt, welches auch fast so wie ich es hätte funktioniert.


    Erweitern möchte ich es nun mit einer Verzeichnisvorwahl. D.h. ich habe ein Dropdownmenü und je nachdem was ich dort vorwähle soll in ein anderes Verzeichnis geladen werden.


    Meine Html sieht wie folgt aus:


    <html>
    <head>
    <title>
    TSB - 01FS-B
    </title>
    <SCRIPT TYPE="text/javascript">
    <!--
    function dropdown(mySel)
    {
    var myWin, myVal;
    myVal = mySel.options[mySel.selectedIndex].value;
    if(myVal)
    {
    if(mySel.form.target)myWin = parent[mySel.form.target];
    else myWin = window;
    if (! myWin) return true;
    myWin.location = myVal;
    }
    return false;
    }
    //-->
    </SCRIPT>
    </head>
    <body bgcolor=FFFFFF>


    <h1>vionlink Uploads</h1>
    <form method="post" action="vionlink_upload.php" enctype="multipart/form-data">
    <table cellpadding="4" cellspacing="4" style="border:1px solid;font-family:verdana,sans-serif;">
    <tr><td>Datei auswählen</td><td><input type="file" name="uploadfile">&nbsp;&nbsp;</td></tr>
    <tr><td colspan="2" align="center"><br><input type="submit" value="Datei hochladen"><br><br></td></tr></table>


    <FORM
    ACTION="../cgi-bin/redirect.pl"
    METHOD=POST onSubmit="return dropdown(this.gourl)">
    <SELECT NAME="gourl">


    <OPTION VALUE="/mnt/home/www/tsb/uploads" >Startverzeichnis
    <OPTION VALUE="/mnt/home/www/tsb/uploads/Louis/" >Louis


    </SELECT>


    <INPUT TYPE=SUBMIT VALUE="Go">
    </FORM



    <br>
    ';
    echo '<a href="'.$_SERVER["PHP_SELF"].'">'.img(2).'</a> ';
    echo '<a href="'.$_SERVER["PHP_SELF"].'">Zurück zum Startverzeichnis</a>'.br();
    if (empty($topdir)) $topdir = "./";


    if ($debug) { f(1); echo "listdir($dir,$topdir,$otherlocation);".br().br(); endf(); }


    f(2); listdir($dir,$topdir,$otherlocation); endf();



    echo '<br><br><font size="1" face="Verdana"> easydirlist v'.$ver.' <br></font>


    </body>
    </html>


    Über die Datei "vionlink_upload.php" wird da hochgeladen.


    In dieser ist auch das Uploadverzeichnis gesetzt welches dann Variabel sein müsste.


    Das sieht so aus:



    Code
    $zielordner='/mnt/home/www/tsb/uploads/'


    Kann mir jemand helfen und mir sagen wie ich das was ich in meinem Drowdownmenü auswähle in den Uploadpfad bekomme?


    Vielen Dank
    coke

    VDR:AMD Athlon X2 4850e, ASUS M3A-H/HDMI, 1 GB DDR2-RAM, 80 GB 3,5"HDD, Hauppauge DVB-C Rev. 2.1, Nova-T, Lorenzen DVB-T, Atric IR-Einschalter, easyvdr 0.6.2


    Server: Allnet ALL6250, 1xGb-LAN, 2xUSB, 400GB mit OPENNAS 1.7


    VDR-User #1475

  • Zitat

    Original von coke
    Kann mir jemand helfen und mir sagen wie ich das was ich in meinem Drowdownmenü auswähle in den Uploadpfad bekomme?


    Möglicherweise versteh ich das Problem nicht ganz...


    Code
    $zielordner = $_POST["gourl"];


    wäre dann aber die Antwort.


    Das ist aber generell keine gute Idee, "user input is evil" ist stets zu beherzigen.
    Besser wäre ein Konstrukt wie:


    Code
    <OPTION VALUE="root" >Startverzeichnis
    <OPTION VALUE="louis" >Louis


    und im PHP dann


    Code
    switch ($_POST["gourl"]) {
      case "louis": $zielordner = "/mnt/home/www/tsb/uploads/Louis"; break;
      default: $zielordner = "/mnt/home/www/tsb/uploads"; break;
    }


    So kann Dir (was das betrifft) keiner was unterjubeln, und ein definierter Fallback besteht auch immer.

  • Hallo Thomas


    ich denke so habe ich es gemeint. Meine PHP Kenntnisse sind nich so besonders gut allerdings klingt das mit dem switch schon mal gut.


    Ich habe jetzt also die zwei Optionen in meinem Menü durch deine ersetzt und im Uploadscript dann den switch anstelle der einen Zeile die ich gepostet hatte eingesetzt. Leider lädt er jedoch immer nur nach uploads und nicht in den Unterordner hoch.


    Evtl. kannst du Dir das ja mal hier ansehen. Vielleicht erkennst du dann noch weitere Probleme bei meiner Lösung. Die index.html ist eigentlich für das DIrectory Listing zuständig. Ich habe diese dann um das Uploadformular erweitert welches dann auf das php Uploadscript zugreift. Kannst es gerne mal ausprobieren. Ich werd den Link später löschen.

    VDR:AMD Athlon X2 4850e, ASUS M3A-H/HDMI, 1 GB DDR2-RAM, 80 GB 3,5"HDD, Hauppauge DVB-C Rev. 2.1, Nova-T, Lorenzen DVB-T, Atric IR-Einschalter, easyvdr 0.6.2


    Server: Allnet ALL6250, 1xGb-LAN, 2xUSB, 400GB mit OPENNAS 1.7


    VDR-User #1475

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!