Beiträge von JR Cologne

    Nein, das möchte ich ja auch gar nicht. Ich möchte nicht die fehlgeschlagenen Dateien erneut Hochladen, mir geht es darum, die nicht fehlgeschlagenen Dateien rauszupicken (was schon passiert) und dann erneut hochzuladen. Und genau bei diesem zweiten Upload, liegt das Problem.

    Denn dafür, dass der User per Button auswählen kann, was mit den Dateien passieren soll (alle, die möglich sind, hochladen oder nur Ausgewählte hochladen) brauche ich einen neuen Request (außer ich nutze JS, aber das kommt nicht in Frage) und danach gibt es die tmp-Dateien natürlich nicht mehr. Das gleiche gilt für den Superglobal $_FILES.

    Dieses Problem habe ich dann versucht zu beheben, indem ich die Buttons in ein Formular gepackt und die Dateien versteckt übertragen habe und nach dem Request wieder entgegengenommen habe.

    Auch das funktioniert leider nicht, denn move_uploaded_file() gibt false zurück und ich bekomme meine Fehlermeldung, dass der Upload/das Speichern gescheitert ist. Wichtig ist dabei zu erwähnen, dass alle Daten in der Funktion ankommen.

    Daher habe ich eben geschlossen, dass das Problem bei den tmp-Dateien liegt, die dann halt nicht mehr vorhanden sind.

    Ich könnte also entweder, wie du sagst, ein Verzeichnis anlegen und die Dateien dort zwischenspeichern oder ich erstelle ganz einfach eine neue tmp-Datei, allerdings muss ich die dann vermutlich erstmal mit Daten füllen, damit es funktioniert. Bei diesen beiden Varianten gehen wir auf jeden Fall davon aus, dass es an den tmp-Dateien liegt.

    Eine weitere Vermutung von mir wäre, dass der Upload nur funktioniert, wenn der Request über ein File-Upload-Form ausgeführt würde. Keine Ahnung, warum, aber das halte ich für die einzige Alternative zu dem eben genannten. Wie man dem umgehen kann, weiß ich nicht.

    So, ich denke, ich werde auf jeden Fall mal deinen Tipp ausprobieren. Und danke dir für deine Hilfe. :)

    Leider ist der Text ein bisschen länger geworden, aber hoffentlich haben wir damit jetzt alle Verständnisprobleme ausgeräumt. :D

    Ich bin gerade zu faul den nicht kommentierten Code durchzuarbeiten. Was heißt für dich "Wenn Fehler aufgetreten sind"? Fehler beim Upload oder Fehler nach dem Upload.

    Beim Upload/Speichern ist ein Fehler aufgetreten, da move_uploaded_file() false zurückgibt.

    Das mit dem Code kann ich verstehen. Werde morgen mal ein paar mehr Kommentare hinzufügen...

    Ich würde wie folgt vorgehen: [...]

    Die Idee hört sich nicht schlecht an, aber ich verstehe nicht ganz, warum das keinen neuen Request benötigt. Denn sobald ich auf einen der Buttons klicke, habe ich dann doch einen neuen Request, oder verstehe ich gerade was falsch?

    Bin mir nicht ganz sicher, ob wir auf dem gleichen Nenner sind. Werde das morgen nochmal versuchen zu erklären. Jetzt bin ich zu müde dafür. :D

    Guten Abend,

    ich habe mal wieder ein Problem mit PHP. Und zwar bin ich gerade dabei ein kleines FTP-Tool zu bauen.

    Folgendermaßen ist es aufgebaut:

    1. File-Upload-Form wird ausgefüllt und abgesendet
    2. Überprüfung und Validierung der Dateien
    3. Speicherung der Dateien
    4. Wenn Fehler aufgetreten sind, wird eine Übersichtstabelle erstellt inkl. zwei Buttons, um auszuwählen, wie es weitergehen soll. (Alle, die hochladbar sind, hochladen oder Ausgewählte hochladen)
    5. Klick auf "Alle hochladen", per Post und hidden-Feld werden hochladbare Dateien übergeben
    6. Dateien werden nochmals hochgeladen


    Das Problem, dass ich habe, befindet sich bei Schritt 6. Nämlich können die Dateien aus irgendeinem Grund nicht hochgeladen werden. Da move_uploaded_file false zurückgibt und alle Parameter richtig sind, liegt es vermutlich daran, dass ja der tmp_file nach dem erneuten Request nicht mehr existiert oder etwas ähnliches.

    Ich habe bereits versucht da entgegenzuwirken und nach dem zweiten Request einfach ein neuen tmp_file erstellt, aber irgendwie scheint das auch nicht zu funktionieren.

    Wahrscheinlich liegt das Problem also doch woanders. Daran, dass der Superglobal $_FILES leer ist, liegt es ebenfalls nicht, da eine Füllung von diesem, auch kein positives Ergebnis mit sich bringt.

    Letztendlich vermute ich jetzt, dass der File-Upload nur gelingen kann, wenn PHP die Daten über das File-Upload-Formular bekommt und nicht über diese Umwege.

    Wenn meine Vermutung richtig liegt, würde mich interessieren, ob ich das irgendwie umgehen kann. Falls es das nicht ist, wäre es natürlich super, wenn jemand den eigentlichen Grund weiß.

    Bin mit meinem Wissen gerade echt etwas am Limit.

    Hier ist der Code:

    ftp-tool.php

    functions.php

    Schon mal danke im Voraus. :)

    Gruß
    JR Cologne

    Der Fehler liegt dort:

    PHP
    $kapital = $_POST ("kapital");
    $zinssatz = $_POST ("zsatz");
    $durchlauefe = $_POST ("durchlauefe");

    Du rufst den Superglobal $_POST wie eine Funktion auf.

    Stattdessen ist es eher ein Array und wird dementsprechend auch so aufgerufen.

    Richtig wäre also:

    PHP
    $kapital = $_POST['kapital'];
    $zinssatz = $_POST['zsatz'];
    $durchlauefe = $_POST['durchlaeufe'];