steffen: Datei auswählen klappt nicht

Hi Forumleser,

ich möchte derzeit ein Internes Script erstellen, bei dem jemand eine txt-Datei auswählen kann und die das Script dann bearbeitet (kein Upload Script).

Nun hab ich ein Problem und zwar steht nichts in der ausgebenden variable.

Ich hab mich nun schon die ganze Zeit in google versucht, aber in meinen Augen hab ich da kein Fehler ...

<form action="./tcall.php" method="post" enctype="multipart/form-data">
 Wählen sie die auszusortierende Datei aus:<br>
 <input type="file" name="datei"  size="50" maxlength="100000"><br>
 <input type="submit" name="abschicken" value="Filtern!">
</form>

Ich wähl eine x-beliebige Datei aus und möchte nur den Pfad wissen.

mit echo $_POST['datei']; wird leider gar nichts angezeigt.

Kann mir wer helfen?

Danke für die Hilfe :)

steffen

  1. Hallo Steffen,

    ich möchte derzeit ein Internes Script erstellen, bei dem jemand eine txt-Datei auswählen kann und die das Script dann bearbeitet (kein Upload Script).

    Kannst du das konkretisieren? Mir ist unklar, wie eine ausgewählte txt-Datei, die nicht hochgeladen werden soll, durch ein Skript bearbeitet werden soll?!?

    Grüße
    crille

    1. Hi chille,

      es ist ganz einfach. Die datei liegt schon auf dem webserver drauf. also ist das eine ganz normale "auswahl"

      mfg steffen

      1. Hello,

        es ist ganz einfach. Die datei liegt schon auf dem webserver drauf. also ist das eine ganz normale "auswahl"

        Das ist sie nicht.
        Denn dass Client und Server auf dasselbe Filesystem direkten Zugriff haben, ist im Web nicht normal.

        Ein harzliches Glückauf

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hi tom,

          das ist mit schon klar, dass das nicht normal ist, aber wenn ich bei einem Uploadscript einfach die Datei auswähle wieso kann ich da nicht einfach den "upload" weglassen und nur den Dateinamen anzeigen lassen?

          Hab es mit text/plain getestet und wird leider auch nicht angezeigt :(

          mfg steffen

          1. Hi,

            hab es jetzt hinbekommen und zwar so:

            <form action="./tcall.php" method="post" enctype="multipart/form-data">
             Wählen sie die auszusortierende Datei aus:<br>
             <input type="file" name="datei"  size="50" maxlength="100000"><br>
             <input type="submit" name="abschicken" value="Filtern!">
            </form>

            <?php
            echo $_FILES['datei']['name'];
            print_r($_FILES);

            ?>

            aktueller stand ist nun, dass ich nun den Dateinamen habe, aber den Pfad nicht, wo die Datei ist.

            Ein Upload script kann ich nicht machen, da die Datei mehrere MB hat, oder ist da keine Obergrenze gesetzt?

            1. Hello,

              aktueller stand ist nun, dass ich nun den Dateinamen habe, aber den Pfad nicht, wo die Datei ist.

              Was nützt Dir auch der Pfad auf dem Client?
              Du müsstest den Pfad auf dem Server auswählen und auch dort die Datei auswählen.

              Versuch doch als erstes mal die Dateinamen eines Verzeichnisses per PHP in ein <select>-Element zu packen.

              Dazu nimmst Du Dir glob() http://de.php.net/manual/en/function.glob.php

              und suchst alle Dateien, deren Namen Du anzeigen willst.

              Und dann kannst Du aus dem resultiernden Array die <Option>-Liste des Select füllen.
              Nimm für das Select-Element einen Namen, wie "datei[]", dann kannst Du auch select multiple zum Server posten und hast die ausgewählten Options (nimm auf jeden Fall Schlüssel dafür und speichere die dem Client angebotenen Dateinamen unter diesen Schlüsseln in einer Session, Kopei des mit glob() erzeugten Arrays reicht) dann unter $_POST['datei'] als Array vorliegen.

              Um etwas mit den Dateien anzufangen kannst Du Checkboxen oder Radios vorsehen...

              Und ruck-zuck hast Du Deinen eigenen kleinen Filemanager zusammengebaut.

              Ein harzliches Glückauf

              Tom vom Berg

              --
              Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
  2. Hello,

    <form action="./tcall.php" method="post" enctype="multipart/form-data">
    Wählen sie die auszusortierende Datei aus:<br>
    <input type="file" name="datei"  size="50" maxlength="100000"><br>
    <input type="submit" name="abschicken" value="Filtern!">
    </form>

    Ich wähl eine x-beliebige Datei aus und möchte nur den Pfad wissen.

    mit echo $_POST['datei']; wird leider gar nichts angezeigt.

    Naja, Du hast eben doch ein Uploadscript geschrieben.
    Wenn Du nur den Pfad wissen willst, dann musst Du entweder

    enctype="text/plain" nehmen

    das ist der Default, oder aber Du musst im Array

    $_FILES

    nachschauen im Feld $_FILES['datei']['name']

    'datei' ist dabei der Name deines Inputelementes.

    Ob bei 'text/plain' auch ein Upload der Datei stattfindet und PHP den nur nicht verarbeitet, vermag ich im Moment nicht zu sagen. Allerdings nehme ich an, dass der browser dann mit dem File gar nicht weiß, wohin, da kein Request-Body vorhanden sein sollte. Da bin ich aber absolut nicht sicher.

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de