Superglobal/ $_FILES Wert auslesen

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

  • Superglobal/ $_FILES Wert auslesen

    Hallo !

    Ich habe ein Problem und fummle schon seit gestern dran rum.
    Hab schon denke ich nahezu alles mögliche probiert und auch hier im forum nichts passendes dazu gefunden.
    Und zwar:
    Ich baster gerade einen Dateiuploader.
    Die Datei verschiebe ich mittels move_uploaded_files und dem array $_files auf den server. das klapt auch ganz gut.

    Das Problem ist, das ich den hochgeladenen Dateinamen gerne ausgeben möchte, woran ich zur zeit scheiter. Das hindert mich nun daran die datei umzubenennen, da mit der dateiname eben fehlt.
    bei jeglicher ausgabe ob mit einer schleife oder nicht, bekomme ich immer den wert array zurück.

    entweder hab ich es mit den arrays nicht so ganz verstanden oder ich komme auf die wahrscheinlich so simple lösung wegen eines denkfehlers gerade nicht.

    so schaut das ganze aus:




    PHP-Code:

    if (move_uploaded_file   ($_FILES['userfile']['tmp_name'],    $uploaddir $_FILES['userfile']['name'])   )
            {
                echo 
    "Die Datei wurde erfolgreich hochgeladen:->" ;
                
                
    // JETZT HABE ICH HIER DAS PROBLEM
                // Hab schon mehrere möglichkeiten versucht

    echo $_FILES['username'];

    // sowie
                
                
    $_SESSION['start']    =    "$_FILES";
                echo 
    $_SESSION['start'];

    // auch mit ner schleife klappt das net. 
    hoffe ihr könnt helfen.

  • #2
    http://de3.php.net/manual/en/features.file-upload.php

    Kommentar


    • #3
      omg.vielen dank.
      kann zwar kein englisch, aber hab verstanden was ich machen muss.

      nun hab ich dann dazu nochmal eine frage.
      wieso setzt sich das array dann aus 2 [][] zusammen?

      danke schonmal

      Kommentar


      • #4
        Dann eben deutsch http://de3.php.net/manual/de/features.file-upload.php

        Ähm ... verstehe nicht was du meinst

        Kommentar


        • #5
          ähm ok, hat sich erledigt..das deutsche war schon recht verstänndlich *hehe

          jetzt hab ich aber noch ein problem.

          wenn die datei hochgeladen wurde, bennent er sie um. das ist ok.
          wenn ich die gleiche nochmal hochlade, wird diese hochgelden ohne
          zumzubenennen und bekomme ein fehlermeldung das diese existiert.

          ich versuche gerade die fehlermeldung abzufangen mit einer if anweisung.
          das klappt aber nicht wirklich.
          hoffe ihr könnt nochmal helfen und evtl. sagen was ich falsch gemacht habe.


          PHP-Code:
          if (move_uploaded_file   ($_FILES['userfile']['tmp_name'],    
          $uploaddir $_FILES['userfile']['name'])   )
                  {
                      echo 
          "Die Datei wurde erfolgreich hochgeladen:->" ;
                      
                      
          //echo $_FILES['userfile']['name'];
                      
                      
                      
          $filename $_FILES['userfile']['name'];
                      
          $username =    "test";
                      
                      
                      if (
          file_exists($uploaddir/$username.$filename))
                      {
                          echo 
          "wurde schonmal hochgeladen";
                      }
                      
          rename("$filename""$username.$filename");
                      echo 
          $filename;
                      
                      


                      
                  }
                  
          // ->Andernfalls Fehler ausgeben
                  
          else 
                  {
                      echo 
          "Fehler beim hochladen";
                      
                  } 

          Kommentar


          • #6
            wieso kann ich nicht anhand

            PHP-Code:
            if (file_exists$uploaddir/$username.$filename ))
                        {
                            echo 
            "error";
                        }
                        
            rename("$filename""$username.$filename"); 
            überprüfen ob die datei bereits existiert.
            da kommt immer eine fehlermeldung.
            das ist so, als ob er garnicht in den if block springt. ???!!!

            Fehlermeldung:

            Warning: Division by zero in C:\xampp\htdocs\test\up.php on line 46
            error

            Kommentar


            • #7
              Informier dich über den richtigen Umgang mit Strings und Variablen:
              PHP-Code:
              if ( file_exists $uploaddir '/' $username $filename ) ) {
              ...
              rename $filename$username $filename ); 
              Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

              Kommentar


              • #8
                alles klar. vielen dank. wieder was dazugelernt.

                Kommentar


                • #9
                  ich brauch nochmal hilfe, sry..

                  @tontechniker, ich habe das so probiert, aber da scheint das gleiche ergebnis zu sein.egal, ich hab mir diese variante jetzt angewöhnt.
                  dasproblem besteht immer noch.

                  vermutlich raucht mir gerade der kopf zu stark.

                  also, alles funktioniert, bis auf das überprüfen ob die datei schon umbenannt wurde.

                  ich weiß jetzt nicht wie ich überprüfe ob die datei schon umbenannt wurde oder nicht.
                  das soll folgendermaßen funktionieren:

                  ist die datei vorhanden -> lade nicht hoch und benenne nicht um:

                  ist die datei nicht vorhanden -> lade hoch und benenne um

                  aber ich bekomme das mit dem if else block nicht richtig hin.
                  könnt ihr mir noch enien tipp geben bitte?

                  PHP-Code:
                  if (move_uploaded_file   ($_FILES['userfile']['tmp_name'],    $uploaddir $_FILES['userfile']['name'])   )
                          {
                              
                              
                  $filename $_FILES['userfile']['name'];
                              
                  $error $_FILES['userfile']['error'];
                              
                  $username =    "test";
                              
                              
                  rename("$filename""$username.$filename");

                              echo 
                  "Die Datei wurde erfolgreich hochgeladen und umbenannt:<br>" ;
                              
                              
                              
                              
                              
                              
                              
                              
                          } 
                  beim ersten durchlauf ist allesok. beim zweiten kommt das die
                  fehlermeldung:

                  Warning: rename(ich14.jpg,test.ich14.jpg) [function.rename]:
                  File exists in C:\xampp\htdocs\test\up.php on line 43
                  Die Datei wurde erfolgreich hochgeladen und umbenannt:

                  aber wenn man aktualisiert, soll die datei nicht nochmal hcohgeladen werden.

                  Kommentar


                  • #10
                    ich werd noch wahnsinnig.
                    habe jetzt das versucht und bin mit meiner logig jetzt am ende.
                    weiß nicht wie ich weiter vorgehen soll:
                    bitte um hilfe



                    PHP-Code:

                    if (!@is_uploaded_file($FILES['userfile']['tmp_name']))
                            {
                            
                            echo 
                    "schon vorhanden";
                            
                            }
                            else 
                            {
                                if (
                    move_uploaded_file   ($_FILES['userfile']['tmp_name'],    $uploaddir $_FILES['userfile']['name'])   )
                                
                                
                    rename("$filename""$username.$filename");

                                echo 
                    "Die Datei wurde erfolgreich hochgeladen und umbenannt:<br>" ;
                            { 

                    Kommentar

                    Lädt...
                    X