Superglobal/ $_FILES Wert auslesen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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

      Comment


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

        Ähm ... verstehe nicht was du meinst

        Comment


        • #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";
                      
                  } 

          Comment


          • #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

            Comment


            • #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]

              Comment


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

                Comment


                • #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.

                  Comment


                  • #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>" ;
                            { 

                    Comment

                    Working...
                    X