Ankündigung

Einklappen
Keine Ankündigung bisher.

Upload - Dateien in ein Verzeichnis bewegen?

Einklappen

Neue Werbung 2019

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

  • Upload - Dateien in ein Verzeichnis bewegen?

    Hallo Spezis,
    Ich habe leider eine kleine Denkblockade Warum legt mir die foreach-Schleife nicht meine hochgeladenen Dateien in den uploads Ordner ab? Wo ist mein Denkfehler?

    PHP-Code:
    <?php
    echo "<pre>";
    echo 
    "FILES:<br />";
    print_r ($_FILES );
    echo 
    "</pre>";

        foreach (
    $_FILES['uploaddatei']['name'] as $file)
        {
            echo 
    $file;
            if(!
    move_uploaded_file($file['tmp_name'],"/uploads".$file['name']))
                {
                    echo 
    "Da ist was schief gelaufen";
                }
            else 
                {
                echo 
    "Hochladen war erfolgreich";
                }
        }
    ?>

  • #2
    Weil du aller Wahrscheinlichkeit nach kein Verzeichnis /uploads hast.
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Doch, das habe ich. Es funktioniert auch wenn ich das ohne Array mache und multiple in der Form weg lasse.

      Kommentar


      • #4
        Mach mal aus
        PHP-Code:
        foreach ($_FILES['uploaddatei']['name'] as $file
        das hier
        PHP-Code:
        foreach ($_FILES['uploaddatei'] as $file
        Und du bist dir sicher, dass du im Root-Verzeichnis des Servers ein Verzeichnis uploads hast? Kann ich mir nicht vorstellen, aber nix ist ja unmöglich
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5
          Ja, ich habe nur Probleme eine vernünftige Konstruktion zu bauen, um über die Schleife die Files hoch zu laden. Ich habe schon verschiedene Orte für den uploads Ordner gewählt, aber der Haken schein in der Schleife zu liegen.
          Wenn ich meinen Code stark vereinfache funktioniert alles wunderbar.

          Code:
          <form name="uploadformular" enctype="multipart/form-data" action="upload.php" method="post" >
          Datei: <input type="file" name="uploaddatei" size="60" maxlength="255">
          <input type="Submit" name="submit" value="Datei hochladen">
          </form>
          PHP-Code:
          <?php
          move_uploaded_file
          ($_FILES['uploaddatei']['tmp_name'],"uploads/test.jpg")
          ?>

          Kommentar


          • #6
            Zitat von uha Beitrag anzeigen
            Mach mal aus
            PHP-Code:
            foreach ($_FILES['uploaddatei']['name'] as $file
            das hier
            PHP-Code:
            foreach ($_FILES['uploaddatei'] as $file
            Nein, $_FILES['uploaddatei']['name'] ist schon richtig.

            Zitat von Mazzen Beitrag anzeigen
            Ja, ich habe nur Probleme eine vernünftige Konstruktion zu bauen, um über die Schleife die Files hoch zu laden. Ich habe schon verschiedene Orte für den uploads Ordner gewählt, aber der Haken schein in der Schleife zu liegen.
            Was sagen deine Debugausgaben? Die sollten dir zeigen dass die Dateien alle durchlaufen werden. Du solltest nicht irgendwelche Zielverzeichnisse probieren sondern das in das die Dateien auch sollen und auf /uploads hast du keine Schreibrechte, das ist im obersten Verzeichnis des Servers!

            Wenn ich meinen Code stark vereinfache funktioniert alles wunderbar.
            Interessanter wäre der nicht funktionierende HTML-Code und die Ausgabe von print_r($_FILES) ...

            Kommentar


            • #7
              Code:
              <form name="uploadformular" enctype="multipart/form-data" action="upload.php" method="post" >
                Datei 1 : <input type="file" name="uploaddatei[]" size="60" maxlength="255">
                Datei 2 : <input type="file" name="uploaddatei[]" size="60" maxlength="255">
                Datei 3 : <input type="file" name="uploaddatei[]" size="60" maxlength="255">
                Datei 4 : <input type="file" name="uploaddatei[]" size="60" maxlength="255">
                <input type="Submit" name="submit" value="Datei hochladen">
              </form>
              PHP-Code:
              foreach ($_FILES['uploaddatei'] as $file)
              {
                 if(!
              move_uploaded_file($file['tmp_name'],"/uploads".$file['name']))
                    echo 
              "Da ist was schief gelaufen";
                 else 
                    echo 
              "Hochladen war erfolgreich";

              Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

              Kommentar


              • #8
                So,
                da bin ich wieder. Ich habe jetzt selber eine Lösung gefunden wie ich es handhabe. Etwas holperig, aber jetzt funktioniert es wenigstens. Ich wollte im Formular nur einen Button und dann sämtliche Dateien von dort abarbeiten. Die Lösung oben fand ich nicht so schön für den Anwender: Klicken, auswählen, klicken auswählen....

                So sieht mein Formular aus:
                Code:
                <form name="uploadformular" enctype="multipart/form-data" action="upload.php" method="post" >
                Datei: <input type="file" name="uploaddatei[]" size="60" maxlength="255" multiple="">
                <input type="Submit" name="submit" value="Datei hochladen">
                </form>
                Und hier ist mein PHP-Code, den ich von foreach auf eine if-Anweisung umgebaut habe. Dort gebe ich dann sämtliche Felder des Arrays einfach weiter und kann die Datei im gleichen Zug ablegen:
                PHP-Code:
                <?php
                $num_files 
                count($_FILES['uploaddatei']['tmp_name']);
                for(
                $x =0$x$num_files;$x++)
                {
                    echo 
                "Hello";
                    
                $image $_FILES['uploaddatei']['name'][$x];
                    if(!
                is_uploaded_file($_FILES['uploaddatei']['tmp_name'][$x]))
                    {
                        echo 
                "No file uploaded";
                    }
                    if (
                move_uploaded_file($_FILES["uploaddatei"]["tmp_name"][$x],"uploads/"$image))
                    {
                        echo 
                "Files uploaded";
                    }  
                }        
                ?>
                Vielen Dank für Eure Hilfe und noch einen gemütlichen Abend.

                Kommentar

                Lädt...
                X