Ankündigung

Einklappen
Keine Ankündigung bisher.

Uploadscript - tmp_name immer leer trotz Auswahl

Einklappen

Neue Werbung 2019

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

  • Uploadscript - tmp_name immer leer trotz Auswahl

    Tach

    Irgendwie geht mein Uploadscript nicht. Die Ausgewählte Datei nimmt er nicht. Er sagt immer dass keine Datei ausgewählt wurde (also $_FILES['userfile']['tmp_name'] = leer). Aber warum ist das so? Ich finde keine Fehler in dem kleinen Script.

    Hier der Code:
    PHP-Code:
    <?php
        error_reporting
    (E_ALL);

        function 
    print_files() {
            echo 
    "<pre>";
            
    print_r($_FILES);
            echo 
    "</pre>\n";
        }

        if(isset(
    $_GET['upload']) AND $_GET['upload'] == 'true') {
            
    $uploaddir 'upload/';
            
    $imgname   '3';
            
    $imgtype   '.jpg';
            
    $allowed = array("image/jpeg""image/jpg""image/pjpeg");
            if(empty(
    $_FILES['userfile']['tmp_name'])) {
                echo 
    '<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
                
    print_files();
            } elseif(
    in_array(strtolower($_FILES['bild']['type']), $allowed)) {
                echo 
    "

    \n"
    ;
                if (
    move_uploaded_file($_FILES['bild']['tmp_name'], $uploaddir.$imgname.$imgtype)) {
                    echo 
    '<p class="message">Bild erfolgreich hochgeladen'."\n";
                    
    print_files();
                } else {
                    echo 
    '<p class="error">Fehler: Bild konnte nicht hochgeladen werden'."\n";

                }
            } else {
                echo 
    "<p class=\"error\">Fehler: Bildtyp fehlerhaft!\n";
                
    print_files();
            }
        } else {
            echo 
    '<form action="fileupload.php?upload=true" method="post">         '."\n";
            echo 
    '<table>                                                          '."\n";
            echo 
    ' <tr>                                                            '."\n";
            echo 
    '  <td>                                                           '."\n";
            echo 
    '       Bild                                                      '."\n";
            echo 
    '  </td>                                                          '."\n";
            echo 
    '  <td>                                                           '."\n";
            echo 
    '       <input type="file" name="userfile">                       '."\n";
            echo 
    '  </td>                                                          '."\n";
            echo 
    ' </tr>                                                           '."\n";
            echo 
    '</table>                                                         '."\n";
            echo 
    '<input type="submit" name="submit" value=" Bild hochladen ">     '."\n";
            echo 
    '<input type="submit" name="reset"  value=" Zurücksetzen ">       '."\n";
            echo 
    '</form>                                                          '."\n"
        }
    ?>
    Hoffe ihr könnt mir weiterhelfen.
    MFG HK


  • #2
    ich würde:
    PHP-Code:
    <?php
            
    if(empty($_FILES['userfile']['tmp_name'])) {
                echo 
    '<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
                
    print_files(); 
    ?>
    ersetzen durch:

    PHP-Code:
    <?php
            
    if(empty($_FILES['userfile']['name'])) {
                echo 
    '<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
                
    print_files(); 
    ?>
    sollte dan eigentlich funktionieren, und auch den Zweck erfüllen

    man könnte es natürlich auch so lösen:
    PHP-Code:
    <?php
    if ($_FILES['userfile']['name'] == ""){
                echo 
    '<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
                
    print_files(); 
    }
    ?>
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Zitat von dsmcg
      ich würde:
      PHP-Code:
      <?php
              
      if(empty($_FILES['userfile']['tmp_name'])) {
                  echo 
      '<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
                  
      print_files(); 
      ?>
      ersetzen durch:

      PHP-Code:
      <?php
              
      if(empty($_FILES['userfile']['name'])) {
                  echo 
      '<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
                  
      print_files(); 
      ?>
      sollte dan eigentlich funktionieren, und auch den Zweck erfüllen

      man könnte es natürlich auch so lösen:
      PHP-Code:
      <?php
      if ($_FILES['userfile']['name'] == ""){
                  echo 
      '<p class="error">Fehler: Kein Bild ausgew&auml;hlt!'."\n";
                  
      print_files(); 
      }
      ?>
      Probier ich mal, aber bei == "" müsste man dann auf isset kontrollieren.

      Aber emty müsste gehen, da glaub ich die datei nicht 0 sein kann. Ist ja String und Pfad etc. Ich test ma danke

      Kommentar


      • #4
        ok geht schon mal nicht mit name.

        Der hat den ganzen Array $_FILES leer. Da kann auch nichts kommen. Warum ist das so?

        -->
        Code:
        Array
        (
        )
        Ich dreh noch durch. Habs schon so oft gemacht, aber es klappt einfach nicht ...

        Kommentar


        • #5
          Dein Form-Tag benötigt den Parameter

          PHP-Code:
          enctype="multipart/form-data" 

          Kommentar


          • #6
            Hmpf *ankopffass* danke, ich wusste ich hab sowas simples vergessen. Lag daran

            Kommentar

            Lädt...
            X