Dateien auswählen und SPÄTER uploaden

chris4712

Erfahrenes Mitglied
Hallo alle zusammen!

Ich weiß nicht recht wie ich meine Frage formulieren soll. Ich versuche es einfach mal (weiß auch nicht ob ich hier im richtigen Forum bin):
Es geht um ein Formular das sich über mehrere Seiten zieht. Auf einer Seite sollen beliebige Dateien upload bar sein.
Diese sollen jedoch nicht sofort hochgeladen werden, sondern erst ganz am Ende wenn alle Daten gesammelt sind.

Bin nur total unschlüssig wie ich dies angehe :(

Die Angaben des Benutzers speicher ich im Moment in einer Session, die beim endgültigen Abspeichern in eine MySQL DB übertragen wird.

Viele Grüße
 
Du könntest die verschiedenen Formulare z.B. per Javascript (jQuery bietet sich an) ausblenden und das nächste einblenden. Dann hast du nur lokal im Browser ein neues Formular, das alte + Inhalt bleibt allerdings versteckt erhalten.

HTML:
<div id="formular">
   <form name="formularus" method="post" action="file.php">
      <div id="step1">
          <input type="text" name="eingabefeld" value="gib was ein" />
          <input type="button" name="submit1" value="Weiter" />
      </div>
      <div id="step2" style="display:none;">
         <input type="text" name="eingabefeld2" value="gib nochmal was ein" />
         <input type="submit" name="submitbutton" value="Absenden" />
      </div>
   </form>
</div>
<script type="text/javascript">
   $(document).ready(function() {
      $("#submit1").click(function() {
         $("#step1").hide();
         $("#step2").show();
      });
   });
</script>

Allerdings musst du vorher die jQuery-Bibliothek einbinden...
 
Zuletzt bearbeitet:
Auf einer Seite sollen beliebige Dateien upload bar sein.
Diese sollen jedoch nicht sofort hochgeladen werden, sondern erst ganz am Ende wenn alle Daten gesammelt sind.

Keine Ahnung wie das Formular/die Formulare aussehen bzw. wie der Ablauf beim Eingeben der Daten geregelt ist.

Aber kannst du nicht einfach den Teil wo die Dateien hochgeladen werden ans Ende machen!?
 
Weitere Frage. Weiss jemand wie lange die Dateien im temp-Ordner sind?
$_FILES gibt ja den tmp_name den man nachher für den move_uploaded_file() verwendet. Wenn man jetzt move_uploaded_file erst später ausführt, sind dei Tempdatein noch da?
Wenn ja, dann im ersten Script die Tempnamen in die Session schmeissen und am Ende erste verschieben
 
Soweit ich weiß werden diese Dateien gelöscht so bald das Skript komplett abgearbeitet ist!?
 
Das Speichern in einer Session ist eine Sache, Du könntest aber -wenn Du nicht mit Sessions arbeiten möchtest- die Daten auf der jeweiligen Folgeseite auch in versteckte Formularfelder schreiben:
HTML:
<input type="hidden" />
PHP:
// zweite Seite
if (isset ($_Post['Wert_Von_Erstem_Formular']))
{
  $alterWert=htmlspecialchars($_Post['Wert_Von_Erstem_Formular']);
}
echo <<<HTML
      <form action='3tesFormular.php' method='post'>
        <input type="hidden" name="WertVon1temFormular" value="$alterWert" />
        <input type="submit" value="Und wech" tabindex="1" />
      </form>
HTML;
So kannst Du den Dateipfad von Formular zu Formular weitergeben.
Nicht sehr elegant, sollte aber klappen.
 
Erst einmal vielen Dank für die zahlreichen Beiträge!

Das Upload am Ende ist nicht machbar. Am Ende soll eine Zusammenfassung angezeigt werden durch dessen Bestätigung alles abgeschickt wird.

Die Idee mit den versteckten verschiedenen Formularen ist eine Möglichkeit, aber mit größerem Aufwand verbunden, da ich auf einer Seite ein Formular hat, in dem man Daten einträgt. Diese werden auf der Seite sofort angezeigt (abschicken des Sub Formulars lädt die Seite neu) und es können weitere Daten in das selbe Formular eingegeben werden, solange bis man einen separaten Button drückt und auf die nächste Seite gelangt.

Um die Idee mit den versteckten Formularen umzusetzen müsste ich also mit AJAX bzw. JavaScript arbeiten :suspekt:


Was die Weitergabe vom Dateipfad angeht: Ich kann doch aus Sicherheitsgründen nicht in ein neues Formularfeld bzw. Dateiupload Feld einen Wert (in dem Falle den Dateipfad) eintragen. Oder hat sich dies geändert?

Viele Grüße!
 
Also ein Formularfeld mit Werte belegen wird nicht klappen - wie du schon selber schreibst.

Die "einfachste" Möglichkeit wird wirklich sein das du die jeweiligen Bereiche mit Hilfe von Javascript und/oder CSS ein- bzw. ausblendest.
 
Arbeit hast du mit jeder Lösung - weil es eben doch etwas unkonventionell ist... Optisch löst du es mit Javascript mit Sicherheit am besten!
 

Neue Beiträge

Zurück