$_FILES ist leer...

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

  • $_FILES ist leer...

    ...obwohl in $_POST['bilddatei'] der Dateipfad eingetragen ist.
    Kann mir jemand von Euch sagen, was der Grund sein könnte?

    Version: 4.3.6
    WIN XP

    saudade, PHP-Anfänger

  • #2
    Das hat nicht zwangsweise miteinander zu tun sondern kommt auf deine Form an. Bitte mal posten.

    Kommentar


    • #3
      Form

      $content .= '<tr><td><b>Image(GIF oder JPG), max 50kB<b></td><td><input type = "file" name = "bildatei"></td></tr>'."\n";

      Ich weiss nicht, ob das das Gefragte ist.
      ?

      Das Programm soll 4 Seiten erzeugen für eine Art Bücherdatenbank,
      in welche auch Buchcoverbilder aufgenommen werden können.

      Grüsse,
      saudade

      Kommentar


      • #4
        Nicht ganz das richtige, poste mal bitte alles zwischen <form ...> und </form> (einschließlich der beiden) wenns nicht zu viel ist.

        (Und verwende die CODE-Tags hier im Forum.)

        Kommentar


        • #5
          PHP-Code:
            $content .= '<form action = "'.$_SERVER['PHP_SELF'].'" enctype = multipart/formdata method = "POST">'."\n";

              if (!isset(
          $_POST['submit']))
              {
                
          $book readout_csvdataset($iD);
              }    
              foreach(
          $insert as $val)
              {      
                if (!isset(
          $_POST['submit']))
                  
          $_POST[$val] = $book[$val];
                if (empty(
          $_POST[$val]) && (isset($_POST['submit'])))
                  {
                    
          $content .= '<tr><td colspan = "2" bgcolor = "FF0000">...</td></tr>'."\n";
                    
          $leereFelder++;
                  }
                  
          $markedVal "*".ucfirst($val);
                
          $content .= "<tr><td><b>$markedVal<b></td>".'<td><input type = "text" name = '.$val.' value = "'.$_POST[$val].'"></td></tr>'."\n";
              }

              if (isset(
          $_POST['uploadOK']) && !$_POST['uploadOK'])
                
          $content .= '<tr><td colspan = "2" bgcolor = "FF0000">Upload nicht funktioniert!('.$errorMsg.')</td></tr>'."\n";
              
          $content .= '<tr><td><b>Image max 50kB<b></td><td><input type = "file" name = "bildatei"></td></tr>'."\n";
              
          $content .= '<input type = "hidden" name = "leereFelder" value = "'.$leereFelder.'">'."\n";
              
          $content .= '<input type = "hidden" name = "uploadOK" value = "'.$uploadOK.'">'."\n";
              
          $content .= '<input type = "hidden" name = "iD" value = "'.$iD.'">'."\n";
              
          $content .= '<tr><td colspan = "2"><input type = "submit" name = "submit" value = "absenden">'."\n";
              
          $content .= '</form></td></tr>'

          So, ich hoffe das ist aufschlussreich...

          EDIT:

          P.S.:
          $insert ist ein Array mit den Namen der Eingabefelder...

          Zuletzt geändert von saudade; 11.06.2005, 10:30.

          Kommentar


          • #6
            Anführungszeichen um den Value von enctype setzen.
            Wie/wo greifst du denn auf $_FILES bzw. die hochgeladene Datei zu?

            Kommentar


            • #7

              EDIT:
              Ups !

              Wo kämen wir hin, wenn jeder sagte: Wo kämen wir hin? und keiner ginge, um zu sehen, wohin wir kämen, wenn wir gingen?

              Kommentar


              • #8
                PHP-Code:
                1)
                  if (isset(
                $_FILES['bildatei']) && $_POST['uploadOK'])
                  {
                      
                $ret '';
                    
                preg_match('/\.(.+)$/'$_FILES['bildatei']['name'], $ret);
                    
                $extension trim($ret[1]);
                    
                $newFilepath '../images/'.$iD.'.'.$extension;
                    
                copy($_FILES['bildatei']['tmp_name'], $newFilepath);
                    
                $_POST['newFilepath'] = $newFilepath;
                  }

                2)
                  if (isset(
                $_POST['submit']) && ($_FILES['bildatei']['size'] > 0) && ($_FILES['bildatei']['size'] < 51200)  
                      && 
                in_array($_FILES['bildatei']['type'], $allowedImgs))
                  {
                    
                $uploadOK 1;     
                  }
                  else 
                  {
                    
                $uploadOK 0;    
                  }

                3)
                  if (isset(
                $_POST['bildatei']) && !in_array($_FILES['bildatei']['type'], $allowedImgs))
                    
                $errorMsg 'Falscher Datentyp...';
                4)
                  if (isset(
                $_POST['bildatei']) && $_FILES['bildatei']['size']  > 51200)
                    
                $errorMsg 'Die Datei ist zu gro&szlig;'
                1) zum Speichern der Datei
                2) zum Prüfen, ob der Upload funktioniert hat
                3)zum Prüfen des Datentyps(JPG etc.)
                4)...und der Dateigröße
                Angehängte Dateien

                Kommentar


                • #9
                  es muss enctype="multipart/form-data" heissen
                  Beantworte nie Threads mit mehr als 15 followups...
                  Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                  Kommentar


                  • #10
                    Wie kommst du nun zu der Erkenntnis, dass $_FILES leer wäre?

                    Füge doch mal folgendes zu Beginn der Funktion ein:
                    PHP-Code:
                    echo '<pre>'print_r($_FILES); print_r($_POST); echo '</pre>'

                    Kommentar


                    • #11
                      Original geschrieben von onemorenerd
                      Wie kommst du nun zu der Erkenntnis, dass $_FILES leer wäre?

                      Füge doch mal folgendes zu Beginn der Funktion ein:
                      PHP-Code:
                      echo '<pre>'print_r($_FILES); print_r($_POST); echo '</pre>'
                      Habe ich gemacht: $_POST ist voll, $_FILES ist leer.
                      Array
                      (
                      )
                      Array
                      (
                      [vorname] => a
                      [nachname => b]
                      etc.
                      )

                      Kommentar


                      • #12
                        Original geschrieben von MelloPie
                        es muss enctype="multipart/form-data" heissen
                        Thx, ist schon korrigiert, ändert aber leider nicht viel.

                        Kommentar


                        • #13
                          Was heißt hier etc - was ist mit $_POST['uploadOK']? Wenn du Hilfe willst, dann denk auch selber mal bißchen mit.

                          file_uploads=1 in php.ini?

                          Kommentar


                          • #14
                            Sorry, [$UpLoadOK] => 0
                            (Copy/Paste geht nicht, weil ich auf diesem PC nur eine Kopie von dem Programm habe & keinen Server)
                            [bilddatei] => C:\\Pfad
                            [leereFelder] => 0
                            [submit] => absenden
                            [id] => 42aa2062764a4

                            Kommentar


                            • #15
                              file_uploads=1 in php.ini???

                              Original geschrieben von saudade
                              Copy/Paste geht nicht, weil ich auf diesem PC nur eine Kopie von dem Programm habe & keinen Server
                              Was? (mit scharfem S!) Heißt das, die Werte von eben sind nur ausgedacht?

                              Bei mir ist $_FILES nicht leer, wenn die Form enctype="multipart/form-data" ist.

                              Was anderes: Wo bekommt $iD denn mal einen Wert und warum copy() und nicht move_uploaded_file()?

                              Kommentar

                              Lädt...
                              X