Matthias: File-Upload klappt nicht

Hallo,

ich habe ein File-Upload-Problem und wieß nicht mehr weiter.

Ich lasse eine Datei via post übergeben.
Das verarbeitende Skript findet die Datei, gibt mir die Originalbezeichnung aus, sagt mir das Temp-Verzeichnis in dem sie liegt und is_readable geht auch.

Wenn ich aber mit move_uploaded_file die Datei verschieben will, klappt das nicht, er gibt einfach false zurück.

Mit copy habe ich es schon versucht, das klappt auch nicht, mit fopen gehts auch nicht.

Dann habe ich mal in das Temp-Verzeichnis geschaut, und _Überraschung_, da ist nichts drin.

Wie kommt es denn dann, das mir vorher gesagt wird, die Datei wäre da und zudem lesbar?

Ich verzweifle noch hier.

Übrigens benutze ich das Skript zum File-Upload von selfhtml.

Grüße, Matthias

  1. Hallo!

    Wenn ich aber mit move_uploaded_file die Datei verschieben will, klappt das nicht, er gibt einfach false zurück.

    Zeige mal das Script, also den Bereich in dem sich move_upload_file() befindet. Unterdrückste Du Fehlermeldungen?

    André Laugks

    --
    Die Frau geht, die Hilti bleibt!
    1. Hello,

      Wenn ich aber mit move_uploaded_file die Datei verschieben will, klappt das nicht, er gibt einfach false zurück.

      Zeige mal das Script, also den Bereich in dem sich move_upload_file() befindet. Unterdrückste Du Fehlermeldungen?

      Ich schätze mal, dass open_basedir() gesetzt ist und das tmp-Verzeichnis nicht enthält.
      Das hatte ich neulich auch durch Unachtsamkeit. Da hat move_uploaded_file() auch keinen Zugriffsfehler ausgelöst, sondern nur false zurückgeliefert. Ich habe es bisher noch nicht untersucht, ob das Verhalten von move_uploaded_file() so gewünscht ist, oder ob es 'Bug' ist.

      Ich benutze deshalb doch immer wieder Copy(). Da bekommt man dann wenigstens eine Zugriffsverletzung.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. Hallo!

        Ich schätze mal, dass open_basedir() gesetzt ist und das tmp-Verzeichnis nicht enthält.
        Da hat move_uploaded_file() auch keinen Zugriffsfehler ausgelöst, sondern nur false zurückgeliefert. Ich habe es bisher noch nicht untersucht, ob das Verhalten von move_uploaded_file() so gewünscht ist, oder ob es 'Bug' ist.

        Ich hatte letztens, naja ist schon etwas länger her, diesen Fall gehabt. Ich meine mich zu entsinnen, dass ich eine Fehlermeldung bekommen haben. Die hat mich dann auch darauf gebracht, dass open_basedir() im Weg steht.

        André Laugks

        --
        Die Frau geht, die Hilti bleibt!
  2. Lieber Matthias,

    ist dein HTML-Formular enctype="multipart/form-data"?

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

  3. Hallo!

    Übrigens benutze ich das Skript zum File-Upload von selfhtml.

    Meinst Du diesen Artikel: http://aktuell.de.selfhtml.org/artikel/phpasp/php-uploadcheck/index.htm?
    Dieser ist leider veraltet und nicht mehr auf dem neusten Stand. Ich hatte den sogar schonmal zu einem großen Teil überarbeitet, leider ist die Datei dann verloren gegangen, weil ich sie da gespeichert hatte wo man sie nicht hätte speichern sollen ;-)

    Ich würde Dir dringen raten das Skript zu überarbeiten, und zwar so vorzugehen wie in

    http://de3.php.net/manual/de/features.file-upload.php
    http://php-faq.de/q/q-formular-upload-php4.html

    beschrieben.

    Grüße
    Andreas

    --
    SELFHTML Tipps & Tricks: http://aktuell.de.selfhtml.org/tippstricks/