Ankündigung

Einklappen
Keine Ankündigung bisher.

Datei upload $_File wird nicht übergeben

Einklappen

Neue Werbung 2019

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

  • Datei upload $_File wird nicht übergeben

    Hallo,

    Als Anfänger habe ich folgendes Problem: Ich möchte Dateien per Browser auf einen Server hoch laden.
    Verwendet wird ein Apache/2.0.44 (Unix) PHP/4.3.0 Server der auf einer Dreambox 7020 (Linux-basierter Festplatten TV receiver).

    Ich nutze method="post" enctype="multipart/form-data" (siehe die beiden verwendeten Dateien weiter unten) Die Dateien wurden erfolgreich auf einem anderen System getestet. Das deutet auf eine fehlerhafte Server/PHP Konfiguration hin.

    Mein 1. Test sieht wie folgt aus

    Datei: "upload_form2.php"

    PHP-Code:
    <h1>Hallo</h1>
     <
    form action="upload2.php" method="post"
     
    enctype="multipart/form-data">
     <
    input type="file" name="probe" />
     <
    input type="submit" value="upload" />
     </
    form
    Datei:"upload2.php"
    PHP-Code:
    <?php
    print_r
    ($_FILES);
    echo 
    $_FILES['probe']['tmp_name']; //test-ausgabe
    echo test//test
            
    if (isset($_FILES['probe']) and ! $_FILES['probe']['error'])
    {  
      
    move_uploaded_file($_FILES['probe']['tmp_name'], "./newfile.txt");
     
      
    printf("Die Datei %s steht jetzt als " ."newfile.txt zur Verfügung.<br />\n"$_FILES['probe']['name']);
      
    printf("Sie ist %u Bytes groß und vom Typ %s.<br />\n",
     
      
    $_FILES['probe']['size'], $_FILES['probe']['type']);
    }
    ?>
    Leider scheint die Variable name="probe" nach der Übergabe an die Datei "upload2.php" leer zu sein. Es erscheint nur "Array()" und das Wort "test" auf der folgenden Seite. Bisherige Hinweise deuten darauf hin, dass kein HTTP upload stattfindet.

    Als zweiter Test haben ich dann folgende Datei "upload_form3.php" getestet.
    PHP-Code:
    <form enctype="multipart/form-data" action="" method="POST">
        <input name="userfile" type="file">
        <input type="submit" value="Send File">
    </form>
    <pre><?php print_r($_FILES); ?></pre>
    Nach dem Drücken des Buttons "Send File" erscheint "Aray ()" und das Feld zum eintragen der Datei die hochgeladen werden soll ist wieder leer.

    Weitere Tests/Checks
    1)
    post_max_size = 8M
    upload_max_filesize = 2M

    Die Datei, die ich hochladen möchte ist aber kleiner als 2MByte.

    2) Das ansprechen mit der direkten IP (vermuteter domainname issue) hat nicht geholfen.

    3)Die access.log enthält:
    meine IP - - [29/Aug/2010:05:50:20 +0000] "GET /upload_form2.php HTTP/1.1" 200 174
    meine IP - - [29/Aug/2010:05:50:34 +0000] "POST /upload2.php HTTP/1.1" 200 20

    3) Die error.log
    ist leer.

    4) Rechte der Ordner hdd/opt/httpd/htdocs sind auf 755


    Ich habe die Frage bereits in einem anderen Forum gestellt, leider bisher ohne Erfolg.

    Hat jemand einen Tip zur Fehlersuche oder Lösung? Vorab Danke.

  • #2
    Die Zeile hier ist aber Unsinn denke ich

    PHP-Code:
    move_uploaded_file($_FILES['probe']['tmp_name'], "./newfile.txt"); 
    und müsste so aussehen

    PHP-Code:
    move_uploaded_file($_FILES['probe']['tmp_name'], "pfad_zum_zielverzeichnis/".$_FILES['probe']['name']); 
    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
    [URL]http://www.lit-web.de[/URL]

    Kommentar


    • #3
      Wieso Unsinn? Und es hiflt ja nicht, wenn das Array ohnehin leer ist.

      Wird eine Fehlermeldung mit
      Code:
      <?php
      error_reporting(-1);
      ini_set('display_errors', 1);
      ausgegeben?

      PHP-Code:
      echo '<pre>'var_dump($HTTP_POST_FILES), '</pre>'
      ist dann auch leer, nehme ich an!?

      [edit]

      Ich habe die Frage bereits in einem anderen Forum gestellt, leider bisher ohne Erfolg.
      Gut, dass du das erwähnst, aber der Link wäre auch brauchbar, sonst bekommst du von uns noch mal die selben Tipps.

      Für alle, die sich für die Vorgeschichte interessieren: http://www.phpforum.de/forum/showthread.php?t=255896.

      [edit2]

      Was sagt die php.ini Konfigurationseinstellung file_uploads?
      Bestimmt, ob Datei-Uploads per HTTP erlaubt sind.
      [URL]http://hallophp.de[/URL]

      Kommentar


      • #4
        Zitat von Asipak Beitrag anzeigen

        Wird eine Fehlermeldung mit
        Code:
        <?php
        error_reporting(-1);
        ini_set('display_errors', 1);
        ausgegeben?
        nein alles leer wie zuvor


        Hier der Code den ich getestet habe:
        PHP-Code:
        <form enctype="multipart/form-data" action="" method="POST">
            <input name="userfile" type="file">
            <input type="submit" value="Send File">
        </form>
        <pre><?php 
        error_reporting
        (-1);
        ini_set('display_errors'1);
        print_r($_FILES); ?>
        echo '<pre>', var_dump($HTTP_POST_FILES), '</pre>';
        </pre>



        Zitat von Asipak Beitrag anzeigen

        PHP-Code:
        echo '<pre>'var_dump($HTTP_POST_FILES), '</pre>'
        ist dann auch leer, nehme ich an!?
        Hier muss ich gleich nocheinmal rein schauen. Da habe ich wohl noch etwas nicht verstanden, deinen Quelltext richtig einzubinden. Die Ausgabe hier ist:

        echo '

        ', var_dump($HTTP_POST_FILES), '

        ';






        Zitat von Asipak Beitrag anzeigen
        Was sagt die php.ini Konfigurationseinstellung file_uploads?
        Die php.ini habe ich gezipt als php.txt.zip angehängt.

        ; Whether to allow HTTP file uploads.
        file_uploads = On

        Vorab besten Dank.
        Angehängte Dateien

        Kommentar


        • #5
          mal wieder jemand der zwei Foren beschäftigen will:
          Datei upload Variable wird nicht übergeben - Seite 3 - Forum: phpforum.de
          Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

          Kommentar


          • #6
            Das hat er doch bereits im Ausgangsposting erwähnt.
            Ich habe die Frage bereits in einem anderen Forum gestellt, leider bisher ohne Erfolg.
            Und der Link steht in #3.

            Gruß
            [URL]http://hallophp.de[/URL]

            Kommentar


            • #7
              Bitte beachten: Anmerkungen zu Crosspostings

              [MOD: Thread geschlossen]
              [MOD: Reopen]
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Zitat von Asipak Beitrag anzeigen

                PHP-Code:
                echo '<pre>'var_dump($HTTP_POST_FILES), '</pre>'
                ist dann auch leer, nehme ich an!?
                So nun nochmal mit einem hoffentlich richtigen Quelltext:

                PHP-Code:
                <form 
                enctype="multipart/form-data" action="" method="POST">
                    <input name="userfile" type="file">
                    <input type="submit" value="Send File">
                </form>

                <pre>
                    <?php 
                error_reporting
                (-1);
                ini_set('display_errors'1);
                print_r($_FILES);
                echo 
                '<pre>'var_dump($HTTP_POST_FILES), '</pre>'
                    
                ?>
                </pre>
                Und das Ergebnis ist:

                Array
                (
                )

                array(0) {
                }


                Also leider leer.
                Hat jemand weitere Tips oder vieleicht die Zeit sich die vorher angehängte php.ini einmal anzusehen?


                PS: Für mein fehlerhaftes Verhalten möchte ich mich auch an dieser Stelle nochmals entschuldigen und für die entgegengebrachte Toleranz bedanken.
                Ich habe um eine Schließung, des vorherigen Treds im vorherigen Forum gebeten, da ich vermute in absehbarer Zeit hier keine Lösung zu meinem Problem zu finden. Ich hoffe das ich damit niemanden verärgert habe.
                Grüße
                nmueller77

                Kommentar


                • #9
                  heute habe ich nach weiteren php.ini's auf meiner Dreambox mit

                  find / -name php.ini

                  gesucht und eine weitere in
                  /var/mnt/hdd/tmp/conf/
                  gefunden, diese habe ich umbenannt. Das hat aber leider auch nichts genutzt.

                  Meine php.ini liegt in:
                  /var/mnt/hdd/opt/httpd/conf/php.ini

                  Kommentar


                  • #10
                    So nun habe ich mir zum Test eine "Simulations-Server-Umgebung" auf meinem Mac instaliert. Hier bekomme ich zumindest Rückgabewerte wie am Beispiel von Asipak. Der Code:

                    PHP-Code:
                    <?php 
                    error_reporting
                    (-1);
                    ini_set('display_errors'1);
                    print_r($_FILES);
                    echo 
                    '<pre>'var_dump($HTTP_POST_FILES), '</pre>'
                        
                    ?>
                    Bringt:
                    Array ( [userfile] => Array ( [name] => ebay_Verkaufen.ods [type] => [tmp_name] => [error] => 6 [size] => 0 ) ) array(1) { ["userfile"]=> array(5) { ["name"]=> string(1 "ebay_Verkaufen.ods" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(6) ["size"]=> int(0) } }


                    Hat denn niemand sonst noch eine Idee, was an den Servereistellungen auf der Dreambox falsch sein kann?

                    Kommentar


                    • #11
                      So heute habe ich die php.ini von der Dreambox mit der von meinem lokalen mac server verglichen.
                      Befund: Ohne nennenswertren Unterschiede. Kann ich gene posten, wenn es hilft.

                      Kommentar


                      • #12
                        Was spricht denn gegen ein Upgrade auf PHP 5 bzw. ein grundsätzliches Neuaufsetzen des Servers?
                        [URL]http://hallophp.de[/URL]

                        Kommentar


                        • #13
                          Zitat von Asipak Beitrag anzeigen
                          Was spricht denn gegen ein Upgrade auf PHP 5 bzw. ein grundsätzliches Neuaufsetzen des Servers?
                          Ich bin mir nicht sicher, ob es für die Dreambox ein PHP 5 gibt. Ich habe bisher noch keinen Beweis gefunden, dass es geht. (Obwohl ich erwarten würde, dass es gehen sollte).
                          Ansonsten muß es nur getan werden.

                          PS: Ich habe mir mit PHPinfo () Daten ausgeben lassen. Hier kann ich aber auch nichts erkennen (siehe Anhang).
                          Angehängte Dateien

                          Kommentar


                          • #14
                            Hallo Leute,

                            ich habe noch nicht die Dreambox neu aufgesetzt. Die Vorbereitungen laufen noch. Dateien/Filme/Einstellungen müssen gesichert werden.

                            Nun aber zum Eigentlichen:
                            Wenn ich das Ergebnis von phpinfo() richtig verstehe, dann stimmen die Einstellungen nicht mit der von mir geposteten php.ini überein!

                            Der Pfad "/hdd/opt/httpd/conf/php.ini" stimmt aber!? Wo können denn diese Info's her kommen? Hat jemand einen Tip, wie ich hier vorgehen kann um herauszufinden, wo phpinfo() die Daten her holt bzw, wie ich meinem apache beibringe, die "richtige" php.info zu nehmen?

                            Vorab Danke und Gruß
                            nmueller77

                            Kommentar


                            • #15
                              Zitat von nmueller77 Beitrag anzeigen
                              Wenn ich das Ergebnis von phpinfo() richtig verstehe, dann stimmen die Einstellungen nicht mit der von mir geposteten php.ini überein!
                              Das stellst du wie fest?

                              Zitat von nmueller77 Beitrag anzeigen
                              Der Pfad "/hdd/opt/httpd/conf/php.ini" stimmt aber!? Wo können denn diese Info's her kommen? Hat jemand einen Tip, wie ich hier vorgehen kann um herauszufinden, wo phpinfo() die Daten her holt bzw, wie ich meinem apache beibringe, die "richtige" php.info zu nehmen?

                              Vorab Danke und Gruß
                              nmueller77
                              Er hat doch "die richtige", oder? Du hast auch den richtigen Weg gewählt, um festzustellen, welche Datei verwendet wird.

                              Unix/Windows: Wo sollte sich meine php.ini befinden?

                              Ansonsten: Werde konkret. Zeig uns die phpinfo, die php.ini und die Stelle, wo du meinst, das ini und phpinfo auseinanderdriften. Eine Meta-Diskussion bringt nix.
                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar

                              Lädt...
                              X