# Upload mehrerer Dateien mit einem Inputfeld



## Tucker (8. Mai 2006)

Hallo,

ich überarbeite gerade mein Galeriescript, insbesondere das Upload- Script. Dieses Script wird auf einer Vereinsseite eingesetzt, speziell für Bilder zu bestimmten Spielen bzw. Spielberichten. Das bisherige Formular fordert den Nutzer viel Geduld und Aufmerksamkeit ab, da immer nur eine Datei hochgeladen wird.

Meine Frage ist nun wie folgt:
Kann man mehrer Datein innerhalb eines input- Feldes auswählen und dann an ein verarbeitendes Programm übergeben? Mir schwebt da etwwas derartiges, wie z.B. bei Windows vor. Mir fällt grad kein Beispiel ein, aber irgendwie kann man da auch mehrer Datein durch ein Semikolon voneinander abtrennen.


----------



## fanste (8. Mai 2006)

Nein, geht nicht. Du musst pro Datei ein Feld nehmen.
Aber wenn es dir so wichtig ist, mit Java, oder ähnlichem, kann man soetwas bestimmt erstellen.


----------



## Tucker (8. Mai 2006)

Gibts dazu hier was im Forum? Wüsste nicht wonach ich suchen soll im Bereich Java oder anderem.


----------



## Gumbo (9. Mai 2006)

Du könntest mittels JavaScript bei Bedarf die zusätzlichen Dateiauswahlelemente hinzufügen.


----------



## Tucker (9. Mai 2006)

Gumbo hat gesagt.:
			
		

> Du könntest mittels JavaScript bei Bedarf die zusätzlichen Dateiauswahlelemente hinzufügen.



Sorry, aber das kann ich nicht ganz nachvollziehen, bzw. weiß ich nicht, was du damit meinst.


----------



## versuch13 (9. Mai 2006)

http://www.archanapatchirajan.com/remove.html


Eine tabellenfreie Lösung von Gumbo würde mich allerdings auch interessieren. 




Gruß


----------



## Gumbo (9. Mai 2006)

Das Prinzip ist ja schon mal erkannt, die tabellenfreie Lösung ist davon nur noch ein kleinen Schritt entfernt. Das einfachste wäre, ein Standardvorlage mit cloneNode() zu kopieren und einfach ans Ende anzufügen.
Irgendwo hatte ich schon mal ein feritges Beispiel, vielleicht finde ich es ja noch wieder.


----------



## Maik (9. Mai 2006)

Ich schiebe den Thread mal ins JS-Board


----------



## Sven Mintel (9. Mai 2006)

versuch13 hat gesagt.:
			
		

> Eine tabellenfreie Lösung
> 
> Gruß




```
<html>
<head>
<title>Test</title>
<script type="text/javascript">
<!--
function clone_this(objButton)
{
    tmpNode = objButton.form.elements[0].parentNode.cloneNode(true);
    tmpNode.getElementsByTagName('input')[1].style.display='inline';
    tmpElm=document.createElement('input');
    tmpElm.type=objButton.form.elements[0].type;
    tmpElm.name=objButton.form.elements[0].name;
    tmpNode.replaceChild(tmpElm,tmpNode.getElementsByTagName('input')[0]);
    objButton.form.insertBefore(tmpNode,objButton);
}

function remove_this(obj)
{
  obj.form.removeChild(obj.parentNode);
}
//-->
</script>
</head>
<body>
<form>
 <div>
  <input size="20" name="textfeldname[]" type="file">
  <input type="button" onclick="remove_this(this)" value="l&ouml;schen"style="display:none">
 </div>
 <input value="noch eins" onclick="clone_this(this)" type="button">
</form>
</body>
</html>
```


Testen


----------



## versuch13 (9. Mai 2006)

Ah, das sieht um einiges besser aus. Vielen Dank!


----------



## Tucker (9. Mai 2006)

Ja, das sind aber auch wieder mehrere Inputfelder. Es geht nur darum, das Script benutzen auch ältere Leute. Ich habe jetzt bereits schon 5 Inputfelder eingebaut. Aber allzuoft passiert es doch, dass gerade die Älteren mehrere gleiche Datein hochladen. 
Aus diesem Grund hätte ich eine Lösung mit einem Inputfeld angestrebt, wo man halt alle Datein markiert.
Ist dies nun prinzipiell möglich oder eher nicht?


----------



## Gumbo (9. Mai 2006)

Nein, wie schon erwähnt ist pro Dateiauswahlelement nur eine Datei möglich.


----------



## versuch13 (9. Mai 2006)

Tucker hat gesagt.:
			
		

> Ja, das sind aber auch wieder mehrere Inputfelder. Es geht nur darum, das Script benutzen auch ältere Leute. Ich habe jetzt bereits schon 5 Inputfelder eingebaut. Aber allzuoft passiert es doch, dass gerade die Älteren mehrere gleiche Datein hochladen.
> Aus diesem Grund hätte ich eine Lösung mit einem Inputfeld angestrebt, wo man halt alle Datein markiert.
> Ist dies nun prinzipiell möglich oder eher nicht?




Ist es denn nicht möglich, die Dateien zu vergleichen um festzustellen ob eine Datei doppelt vorhanden ist, und dann eben die Datei nur einmal hoch zu laden?


----------



## Sven Mintel (9. Mai 2006)

Doch, das ginge schon.
Man liest halt die value-Attribute der Felder aus und entfernt die doppelten Felder(löschen des value geht ja nicht).

Da gibt es allerdings ein Problem bei...da, wie wir in einem anderen Thema festgestellt haben, in manchen Browsern JS lediglich den Dateinamen ermitteln kann und nicht den kompletten Pfad, würde dies bedeuten, dass es bspw. nicht möglich ist, verschiedene Dateien(aus verschiedenen Verzeichnissen) mit identischem Dateinamen hochzuladen.


----------



## forsterm (9. Mai 2006)

Hallo,
bei den Bildern könnte man ja zu jedem Uploadfeld eine Vorschau des augewählten
Bildes anzeigen, somit sieht man ja dann, ob man ein Bild zweimal ausgewählt hat.

mfg
forsterm


----------



## Sven Mintel (9. Mai 2006)

Das mit den Vorschaubildern funktioniert auch nur in den wenigsten Browsern, da dies ein Zugriff auf lokale Dateien erfordern würde, was mal vom IE abgesehen, kaum ein Browser mitmacht.


----------



## kN0k_kN0k (14. Januar 2007)

hallo,
ich habe ein paar probleme beim einbinden des js scripts.
und zwar kann ich keine input-felder vor dem <div> setzen ,
wenn ich das mache klont er alles auch den button selbst...
weiterhin kann ich vor den button "noch eins" kein <p> setzen,
dann funktioniert es gar nicht mehr...
gibt es irgend eine möglichkeit es doch zum laufen zu bekommen?

mfg


----------

