Ankündigung

Einklappen
Keine Ankündigung bisher.

move_uploaded_file nur über localhost möglich

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • move_uploaded_file nur über localhost möglich

    Hallo zusammen,

    folgenden Fehler finde ich einfach nicht! Hoffe Ihr könnte mir dabei Helfen.

    PHP-Code:
     move_uploaded_file($_FILES['datei']['tmp_name'], 'font/'.$_FILES['datei']['name']); 
    HTML-Code:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
    <input type="file" name="datei"><br>
    <input type="submit" value="Hochladen">
    </form>
    Upload ist nur über localhost möglich und nicht online. Bekomme auch keine Fehlermeldung in der Log oder sonst wo das Rechte fehlen.

    Datei liegt auf einem IIS Server, der Ordner besitzt alle Rechte (IIS_USRS, Administrator).

    Vielen Dank vorab


  • #2
    Ist filename keine gültige Datei, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück.

    Ist filename eine gültige Datei, jedoch aus irgendeinem Grund nicht verschoben werden kann, wird keine Aktion ausgeführt, und move_uploaded_file() gibt FALSE zurück. Zusätzlich wird eine Warnung ausgegeben.
    http://php.net/manual/de/function.mo...oaded-file.php

    Schau dir doch mal den Rückgabewert an. Aus der Doku würde ich vermuten, wenn false und keine Warnung im Log, dann ist "filename" keine gültige Datei.

    Anbei $_SERVER['PHP_SELF'] sollte weggelassen werden. Wenn das Skript an die eigene url abgesendet werden soll, kann das action Attribut komplett weggelassen werden.

    Kommentar


    • #3
      Berücksichtige mal den Tipp von Dan Delaney aus den user contributed notes unten auf der Seite.

      Kommentar


      • #4
        Vielen Dank für die schnellen Antworten.

        -ChromOxid auch nach 5x durchlesen habe ich zwar verstanden das evtl. FALSE ausgegeben wird und deshalb keine Aktion oder sonst etwas ausgegeben wird. Aber leider kenne ich hier noch keine Lösung. Wie kann ich mir den Rückgabewert ausgeben lassen?
        UPDATE:
        Warum ist es dann eigtl. möglich, dass es über localhost funktioniert?

        -protestix hatte ich mir im Vorfeld auch gedacht und schon umgesetzt. Hat auch hier kein Erfolg gebracht.

        Bin für jeden Tipp dankbar.

        Kommentar


        • #5
          Gerade habe ich beim testen folgendes entdeckt:

          localhost/page/index.php -> Script funktioniert
          192.168.178.21:81/page/index.php -> Script funktioniert
          12.35.45.35/page/index.php -> Script funktioniert -> Feste IP
          http://domain.de/page/index.php -> keine Funktion

          Irgendwie wird es am http:// liegen "hatte da mal irgendwo was gelesen" aber wie behebe ich das Problem?

          Kommentar


          • #6
            Existiert das Verzeichnis font/ ?
            wie heisst die hochgeladene Datei? Welche Zeichen kommen vor?

            Dann mal folgendes machen
            PHP-Code:
            var_dump($_FILES['datei']["error"],$_FILES['datei']['name']);
            move_uploaded_file($_FILES['datei']['tmp_name'], 'font/'.$_FILES['datei']['name']); 
            und Ausgabe mal hier posten.

            Bitte verwende deinen Domainnamen oder verwende example.com.

            Kommentar


            • #7
              Pfadangaben sollten immer absolut und nicht relativ ein. Sonst weiß man nie, wo man hin kommt.

              Kommentar


              • #8
                Zitat von protestix Beitrag anzeigen
                Existiert das Verzeichnis font/ ?
                wie heisst die hochgeladene Datei? Welche Zeichen kommen vor?
                Ja font/ gibt es. Habe mehrere Datein getestet : test.jpg, datei.txt usw.. Sind keine Sonderzeichen oder sonstiges drin.
                Dann mal folgendes machen
                PHP-Code:
                var_dump($_FILES['datei']["error"],$_FILES['datei']['name']);
                move_uploaded_file($_FILES['datei']['tmp_name'], 'font/'.$_FILES['datei']['name']); 
                Ergebniss:
                23.23.34.34/page/index.php -> Bevor ich die Datei einfüge --> NULL NULL --> Datei eingefügt! --> int(0) string(9) "datei.txt" --> Datei wurde hochgeladen!
                domain.de/page/index.php -> Bevor ich die Datei einfüge --> NULL NULL --> Datei eingefügt! --> NULL NULL --> Kein hochladen

                Kommentar


                • #9
                  Den Fehler musst du im Formular suchen.
                  Beachte auch unbedingt Beitrag #2

                  Kommentar


                  • #10
                    Nach gefühlten 100 fachen lesen komme ich immer noch nicht dahinter. Jemand noch einen Tipp für mich?

                    Sobald ich die Seite mit der Domain aufrufe und in das Formular was einfüge wird es nicht erkannt anscheinend...

                    Kommentar


                    • #11
                      Sind auf dem betroffenen Problemserver denn Dateiuploads in der php.ini aktiviert?

                      Kommentar


                      • #12
                        Ja ist aktiviert

                        Kommentar


                        • #13
                          Zeige doch mal die betroffene Domain.

                          Kommentar


                          • #14
                            zeige mal bitte folgende Ausgabe:

                            Code:
                            <?php echo $_SERVER["DOCUMENT_ROOT"] ?>

                            Kommentar

                            Lädt...
                            X