File Upload Fehlerhaft

  • Hi Leute,

    ich gestallte gerade eine Website und bin auf folgendes Problem gestossen.
    Wenn man einen "input type=file" Tag hat und die Formulardaten via POST versendet, so kommt beim FireFox nur der File-Name und die Extension bei meinem Skript an, nicht aber der komplette Pfad. Im IE funktioniert es einwandfrei.

    (Ich benutze: PHP4, Windows XP Pro SP2 , XAMPP)

    Hat jemand von euch einen Tipp für mich?

    Gruß Benni

    P.S.: Ihr könnt es ja einfach mal hier probieren (z.B. mit Firefox und IE)
    http://www.blueitmunich.de/test/test.php (es wird nichts geuploadet; es wird nur der Pfad ausgegeben!)

  • Könnte an deiner inkorrekten Verschachtelung liegen. Wenn du <td><form ....></td> machst brauchst du dich nicht zu wundern. Dann findet nämlich auch der Validator nur ein <form> ohne End-Tag und ein </form> ohne Anfangs-Tag.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • Glaub ich nicht!
    Ich habe verschiedenste Varianten ausprobiert, mit immer dem gleichen ergebnis. Was die Form-Tags innerhalb von TD angeht, warum geht es bei allen anderen Feldern, sprich TEXT, SELECT, TEXTAREA usw.. Es funktioniert nur beim FILE nicht. Wie schon gesagt, im FireFox wird da nur die File, nicht aber der ganze Pfad ausgegeben.

    Gruß Benni

  • Mit dem PHP kann ich schlecht lokal arbeiten das is blöd... Aber möglicherweise (eigentlich habe ich keine Ahnung ;) ) hilft folgendes:

    Zitat

    Wichtig ist, dass Sie im einleitenden <form>-Tag die Angabe enctype="multipart/form-data" notieren, wenn das Formular ein Element für Datei-Upload enthält.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • brain

    erstmal danke, für deine Bemühungen. :)
    Ja, das mit dem multipart/form-data ist schon richtig. Damit funktioniert es ja auch. Die Sache ist nur die, das du mit multipart/form-data eine File Postest, d.h. du schickst die File z.B. zum Server und dort kannst du sie via PHP dann in "Empfang" nehmen und bearbeiten. Das Problem ist nur, das man dabei nicht den Pfad mitgeschickt bekommt.

    Ich gebe ja zu, das man in den seltensten Fällen nur den Pfad braucht, da dieser ja nur lokal von Nutzen ist. Aber hin und wieder, gerade für Offline-Skripts ist dies schon ganz nützlich.
    Und mit FF scheint es einfach nicht zu klappen.
    Meine Vermutung ist, das FF alles was vor dem "\"-en steht "abschneidet" und nur noch den Rest verarbeitet, das ist in diesem Fall aber ein Bug. :wink:

    Gruß Benni

    P.S.: Wenn du einfach und schnell mit PHP lokal arbeiten möchtest, ohne den mega Installationsaufwand, kann ich XAMPP nur empfehlen. Downloaden, entpacken, fertig :wink:

  • Ja ich muss mal sehen, wenn ich mal gaaaanz viel Zeit hab muss ich mir eh mal PHP angucken. Schade dass ich dir nich helfen konnte... Aber ich glaube nicht dass das irgendwie ein Bug ist oder so, es ist schließlich nirgendwo festgeschrieben was der Browser liefern soll.

    Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1

    Eine Theorie sollte so einfach wie möglich sein, aber nicht einfacher. (A. Einstein)

  • ok ok :)
    In dieser Hinsicht, was der Browser liefern sollte, hast du recht. Abgesehen davon, braucht man dies ja wie gesagt, eher selten.
    Wollte es igentlich nur mal anmerken. Vielleicht hab ich da auch eine falsche Vorstellung ;)

    Gruß Benni

  • Gibt es mittlerweile schon eine Lösung für das Problem?
    Im IE klappt es mit dem Pfad, wenn die Funktion "Extras -> Internetoptionen -> Sicherheit -> Internetzone -> Benutzerdefiniert: Stufe anpassen -> Lokalen Verzeichnispfad beim Hochladen von Dateien mit einbeziehen" aktiviert ist.
    Jetzt die Frage: Wo kann man das beim Firefox machen? Oder kann der das etwa nicht?