$_FILES = leer?

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

  • #16
    @Entilan
    Deine Versicherungswerbung in der Signatur nervt!
    Gruss
    H2O

    Kommentar


    • #17
      Ich setze einen 10er auf die Webserverkonfig.

      Kommentar


      • #18
        Offensichtlich wurde das Problem noch nicht gelöst und ich kämpfe nun auch damit.

        PHP-Verison 4.3.10
        Apache 2

        Der Code
        PHP-Code:
         <form method="get" action="test.php" enctype="multipart/form-data">
          
        Datei:
          <
        input type="hidden" name="MAX_FILES_SIZE" value="100000">
          <
        input type="file" name="thefile" size="40" maxlength="100000">
          <
        input type="submit" name="submit" value="senden">
        </
        form>
         
        $name=$_FILES['thefile']['name'];
        $root=$_SERVER['DOCUMENT_ROOT']."/dateien/".$name

        if (
        copy($thefile,$root))
        echo 
        "Upload ausgeführt"
        führt zu folgender Fehlermeldung:
        Warning: copy(D:\handydaten\csv\EVN_blablubb.csv): failed to open stream: No such file or directory in /home/ftpuser_2/public_html/handy/test.php on line 43
        $_FILES['thefile']['name'] ist leer.

        print_r($_FILES) bringt Array()

        Die Datei ist aber definitiv am angegebenen Ort.

        Dateigröße ist ca. 80kb, Temp-Dir in php.ini ist gesetzt.

        Bin jetzt ziemlich ratlos.

        Anmerkung:
        Die Variable $thefile enthält den Wert
        D:\\handydaten\\csv\\EVN_blablubb.csv
        also doppelte Backslashes.
        Dies habe ich mit
        PHP-Code:
        $thefile=str_replace(chr(92).chr(92),chr(92),$thefile); 
        repariert. Allerdings konnte ich noch nicht ergründen, wo dieses Phänomen herkommt.

        Dann habe ich festgestellt, daß auch hier der Editor Backslashes entfernt, wenn der Text als PHP-Code deklariert ist.

        Kommentar


        • #19
          Hm, du machst da einiges falsch. Zuerst mal verlässt du dich auf register_globals. Würdest du das nicht tun, gäbe es $thefile gar nicht. Du müsstest über $_POST['thefile'] darauf zugreifen. Beim Fileupload steckt die Datei aber in $_FILES, nicht in $_POST.

          Schau dir mal das Beispiel auf http://php.net/file-upload an.

          Übrigens hat dein Problem mit dem eigentlichen Thema dieses Thread nichts zu tun.

          Kommentar


          • #20
            Als Source zum Kopieren bei einem Upload verwendet man normalerweise den tmp_name-key des FILES-Array.
            Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

            [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
            Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

            Kommentar


            • #21
              Als Source zum Kopieren bei einem Upload verwendet man normalerweise den tmp_name-key des FILES-Array.
              Full Ack!

              ... und move_uploaded_file()

              Kommentar


              • #22
                Aber das FILES-Array ist leer!
                Es kommt ja die Fehlermeldung, daß die Datei nicht vorhanden sei.
                Ich vermute, das hängt mit den doppelten Backslashes zusammen, weiß aber nicht, wo die herkommen.

                Kommentar


                • #23
                  Der ziemlich blöde Fehler ist gefunden:

                  Datei-Uploads können nicht per "get" sondern nur per "post" erfolgen.

                  PHP-Code:
                  <form method="[B]get[/B] " action="test.php" enctype="multipart/form-data"

                  Kommentar


                  • #24

                    ^^ cool
                    "Nicht jeder Mensch kann und soll Programmieren[...]".

                    Kommentar


                    • #25
                      Beim ersten Beitrag war es noch POST und keiner hat gesagt das wäre falsch.

                      Kommentar


                      • #26
                        Hat schon jemand eine Lösung gefunden?

                        Hallo,

                        bei mir tritt genau das gleiche Problem auf. Hat schon jemand eine Lösung gefunden? Ich habe jetzt so ziemlich alles getestet, die php.ini geändert, alles neu gestartet etc.

                        Daten in der php.ini:

                        max_input_time: 90
                        post_max_size: 8M
                        upload_max_filesize: 8M

                        Das verwunderliche ist, dass der Server Dateien die kleiner sind als 1,5 MB (so ungefähr) und per upload hochgeladen werden ohne Probleme annimmt, aber bei Dateien mit z.B. 2 MB einfach gar nix passiert.

                        Auch bei meinem Formular benutze ich die Methode POST (das habe ich jetzt schon überprüft xd).

                        Kann mir hier bitte irgendjemand helfen?

                        Kommentar


                        • #27
                          PHP-Code:
                          <pre><?php print_r(ini_get_all()); ?></pre>
                          http://de.php.net/manual/en/function.ini-get-all.php

                          Kommentar


                          • #28
                            Teil 1 der Abfrage: [entfernt]
                            Zuletzt geändert von wahsaga; 18.04.2010, 16:48.

                            Kommentar


                            • #29
                              Teil 2: [entfernt])
                              Zuletzt geändert von wahsaga; 18.04.2010, 16:48.

                              Kommentar


                              • #30
                                Teil 4: [entfernt]
                                Zuletzt geändert von wahsaga; 18.04.2010, 16:49.

                                Kommentar

                                Lädt...
                                X