"Übergabe" einer Datei an $_FILES

dsturm

Erfahrenes Mitglied
Hallo,

ich bastle gerade an einem Formular, welches unter anderem den Upload von Dateien (jpg, gif) beinhaltet. Nun gibt es dort einen Link, welcher ermöglicht, ein zusätzliches UploadFeld hinzuzufügen. Beim Klicken wird innerhalb eines versteckten Feldes die Anzahl der anzuzeigenen <input type="file">-Tags erhöht, das Formular abgeschickt, damit neu aufgebaut, mit den übergebenen $_POST-Werten wieder gefüllt.

Nur haben die vorherigen Upload-Felder die ausgewählten Dateien wieder "vergessen".

Gibt es nun die Möglichkeit der $_FILES-Variablen die Datei wieder zu übergeben? Ich weiss, dass man dem <input>-Tag dies nicht tun kann, aber wenn ich jetzt die URL der Datei, die ich ausgewählt habe, mitgebe, und nach dem Abschicken diese URL verarbeite, würde ich gerne auf entsprechende "Eigenschaften" zurückgreifen, welche eine $_FILES-Variable hat, wie ["Error"], ["Type"], ["Size"]...
 
Zuletzt bearbeitet:
Diese Eigenschaften(Error im Speziellen) bekommst du so nicht wieder... da es beim nächsten mal keine geuploadete Datei mehr wäre.

Du könntest diese Eigenschaften bspw. zwischenspeichern(die Datei selbst natürlich auch, damit sie nicht verlorengeht).... SIZE und TYPE kannst du natürlich auch jederzeit über die Dateisystemfunktionen abfragen.

Was noch geht: erzeuge die weiteren Felder mit Javascript....das erspart dir das Neuladen der Seite, und die bisher ausgewählte Datei bleibt weiter ausgewählt.
 
Ja, da ich eh JS benützen muss, wäre die letzte Idee ganz interessant! Hast du da mal einen Ansatz für mich? Ich meine wie ich per JS was der Seite hinzufügen kann?

Ok, habe natürlich noch im Forum selbst gesucht, und einen Ansatz gefunden...
Dann ersteinmal Danke!
 
Zuletzt bearbeitet:
Einfaches Besipiel:
Code:
<script type="text/javascript">
<!--

function clonen(o)
{
  f=document.createElement('input');
  f.setAttribute('type','file');
  f.setAttribute('name',o.form.elements[0].name);
  o.form.insertBefore(f,o);
}

//-->
</script>
<form action="smile.php" enctype="multipart/form-data"method="post">
<input type="file" name="file[]"><br><input type="button" value="noch eins" onclick="clonen(this)"><input type="submit">
</form>
 
Hallo Sven Mintel

Ist es in deinem Beispiel auch möglich einen minus b.z.w einen löschen Button hinzuzufügen?

PHP:
<form action="smile.php" enctype="multipart/form-data"method="post">
<input type="file" name="file[]">
<input type="button" value="diese zeile löschen" onclick="del(this)"> 
<br><input type="button" value="noch eins" onclick="clonen(this)"><input type="submit">
</form>

Gruß
Thomas
 
Zurück