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

  • Mazzen
    hat ein Thema erstellt Upload - Dateien in ein Verzeichnis bewegen?.

    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";
                }
        }
    ?>

  • Mazzen
    antwortet
    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.

    Einen Kommentar schreiben:


  • uha
    antwortet
    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";

    Einen Kommentar schreiben:


  • tk1234
    antwortet
    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) ...

    Einen Kommentar schreiben:


  • Mazzen
    antwortet
    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")
    ?>

    Einen Kommentar schreiben:


  • uha
    antwortet
    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

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • uha
    antwortet
    Weil du aller Wahrscheinlichkeit nach kein Verzeichnis /uploads hast.

    Einen Kommentar schreiben:

Lädt...
X