Datei auswählen klappt nicht
steffen
- php
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
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
Hi chille,
es ist ganz einfach. Die datei liegt schon auf dem webserver drauf. also ist das eine ganz normale "auswahl"
mfg steffen
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
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
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?
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
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