Leser: 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<form name="Form1" enctype="multipart/form-data" method="post" action="/cgi-bin/next_file5.pl">
<p> Choose your 1st file
<input type="file" name="File1" size="20" maxlength="5000">
Description of your 1st file:
<input type="text" name="Description1" size="30" maxlength="50">
</p>
<p> Choose your 2nd file
<input type="file" name="File2" size="20" maxlength="5000">
Description of your 2nd file:
<input type="text" name="Description2" size="30" maxlength="50">
</p>
<p> Choose your 3rd file
<input type="file" name="File3" size="20" maxlength="5000">
Description of your 3rd file:
<input type="text" name="Description3" size="30" maxlength="50">
</p>
1
2
3
4
5
6
7
8
9
10
11
my $cgi = new CGI; # neues Objekt erstellen
my $file = $cgi->param("Descrption1");
my $upload_filehandle = $cgi->upload("File1");
open ( UPLOADFILE, ">$dir/$file" ) or die "$!";
while ( <$upload_filehandle> )
{
print UPLOADFILE;
}
close UPLOADFILE;
1 2 3 4 5 6 7 8
# ungetestet my @upload_fields = map { m/^File(\d+)/ ? $1 : () } $cgi->param; # enthält jetzt die zahlen for my $num (@upload_fields) { my $file = $cgi->param("Description$num"); my $upload_filehandle = $cgi->upload("File$num"); ... }
2010-03-12T16:05:23 pqwenn ich dich richtig verstehe:
Code (perl): (dl )1 2 3 4 5 6 7 8# ungetestet my @upload_fields = map { m/^File(\d+)/ ? $1 : () } $cgi->param; # enthält jetzt die zahlen for my $num (@upload_fields) { my $file = $cgi->param("Description$num"); my $upload_filehandle = $cgi->upload("File$num"); ... }
2010-03-12T15:57:43 gmafxCode: (dl )1
2
3my $file = $cgi->param("Descrption1");
[...]
open ( UPLOADFILE, ">$dir/$file" ) or die "$!";
2010-03-12T15:57:43 gmafxMal abgesehen davon, dass ich noch nicht weiss, wie ich dieses Eingabeformular dynamisch gestalten kann (erstmal nur eine Datei eingeben, dann entweder abschicken, oder ein weiteres Eingabefeld anbieten)
QuoteEdit: *1) bedeutet: Nach bestimmten Regeln! Die speziellen Freunde aus der Reihe FF, Chrome, Opera und Safari wollen hier ganz besondere Reihenfolgen haben.
2010-03-12T16:28:54 sid burnDeswegen sollte man immer gleich ein JavaScript Framework nutzen. Pures JavaScript über etliche Browser hinweg ist einfach eine Qual.
QuoteJup. Wobei die Freunde des JS es gern als "lib" bezeichnet hätten :)
QuoteUnd bei den Lib's muss man auch höllisch aufpassen. mit jQuery kann man vermutlich nicht viel falsch machen aber da tummeln sich noch etliche Anbieter und da sollte man ohne intensive eigene Tests nicht einfach voraussetzen, was man erwartet :)
2010-03-12T17:35:16 sid burnMeine empfehlung wäre Dojo. Ansonsten wäre Mootools meiner ansicht auch besser. Speziell zu Mootools vs jQuery: http://jqueryvsmootools.com/
Wobei auch an Mootools einiges auszusetzen habe, deswege bevorzuge ich auch Dojo.
QuoteJup, genau deshalb nutze ich NIEMALS eine LIB für JS :)
QuoteEs ist völlig egal, wieviele Leute Du fragst, Du bekommst mindestens soviele verschiedene Empfehlungen wie die Anzahl Leute, die Du fragst.
QuoteGenau aus diesem Grund mache ich JS vorzugsweise garnicht oder - wenn sinnvoll - nur selbst gebaut als Addon, soweit es für einen Produktivbetrieb nicht zwingend erforderlich ist :=)
2010-03-12T17:49:28 sid burnQuoteJup, genau deshalb nutze ich NIEMALS eine LIB für JS :)
Das ist aber ein albener grund, weil...
QuoteEs ist völlig egal, wieviele Leute Du fragst, Du bekommst mindestens soviele verschiedene Empfehlungen wie die Anzahl Leute, die Du fragst.
... wenn du fragst welche programmiersprache bekommst du ebenfalls das gleiche Resultat. Nutzt du deswegen auch nie eine programmiersprache und hörst auf zu Programmieren? Oder tippst du alles gleich in Maschienencode ein?
QuoteDein Vergleich ist ja ein Schmarrn.
QuoteBei Javascript geht es um "nice-to-have", da bist Du auf die Gewohnheiten der Nutzer und deren Browser angewiesen. Bei Serversprachen geht es um konkretes abarbeiten, das hat miteinander überhaupt nichts zu tun.
2010-03-12T18:05:21 sid burnNein, weil...
QuoteBei Javascript geht es um "nice-to-have", da bist Du auf die Gewohnheiten der Nutzer und deren Browser angewiesen. Bei Serversprachen geht es um konkretes abarbeiten, das hat miteinander überhaupt nichts zu tun.
ich von richtigen Webapplikationen sprach. Webapplikation als ersatz von Desktop Applikationen.
2010-03-12T18:11:43 biancaAngenommen! Aber davon sprach ich nie! Und wenn wir die Ursprungsfrage in diesem Thread anschauen, sind wir auch weit davon entfernt.
QuoteInsofern hier aus meiner Sicht gut und wertvoll dargestellt, nur halt ohne Zusammenhang zum Thread.
2010-03-12T16:54:42 GwenDragonEs besteht kein Zwang zu innerHTML.
Es ist IMHO sinnvoller die Elemente mit createElement zu erzeugen, als Zweig zusammenzubauen und dann diesen ins DOM zu hängen.
2010-03-12T15:57:43 gmafx2) Muss ich die Datei überhaupt physikalisch hochladen, um an deren Inhalt zu kommen, oder kann ich den Inhalt der Datei auch ohne diese anzulegen direkt an eine Variable, zB einen Array übergeben, der den Inhalt der Datei Zeile für Zeile speichert?
2010-03-13T08:57:33 gmafxSo Lade ich die Daten hoch, erstelle eine Datei und lese sie dann Zeile für Zeile von der Festplatte ein. Mir erscheint das irgendwie 1 Schritt zu viel.
1
2
3
4
5
open ( UPLOADFILE, ">$dir/$file" ) or die "$!";
while ( <$upload_filehandle> )
{
print UPLOADFILE;
}
1
2
3
4
5
6
7
8
open ( UPLOADFILE, ">$dir/$file" ) or die "$!";
my $count=0;
while ( <$upload_filehandle> )
{
@splitted = split (/\t/ , $_);
@variable1[$count] = @splitted[1];
.....
}
2010-03-13T18:37:05 gmafxP.S.: der hier ja zu reichlich Diskussion führende 2. Abschnitt meiner Frage (dynamisches HTML mit Javascript) erscheint mir etwas zu aufwendig zu sein, um es gerade mal so zwischen Tür und Angel hinzubekommen.
2010-03-13T18:37:05 gmafxP.S.: der hier ja zu reichlich Diskussion führende 2. Abschnitt meiner Frage (dynamisches HTML mit Javascript) erscheint mir etwas zu aufwendig zu sein, um es gerade mal so zwischen Tür und Angel hinzubekommen. Ich habe mir mal Dojo angeschaut, ich glaube ich muss mir erst mal die JS basics reinziehen (Mist, schon wieder eine Programmiersprache mehr, die man lernen muss, um bestimmte Dinge hinzukriegen).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
<head>
<title>Test dyn. Feld</title>
<script type="text/javascript" language="javascript">
var upload_number = 1;
function ergaenzefeld (feldnr) {
feldnr = feldnr.substr(1);
if (feldnr == upload_number) {
upload_number++;
var d = document.createElement("div");
var file = document.createElement("input");
file.setAttribute("type","file");
file.setAttribute("name","file" + upload_number);
file.setAttribute("id","f" + upload_number);
file.onchange = function() {
ergaenzefeld(this.id);
};
d.appendChild(file);
document.getElementById('dynfelder').appendChild(d);
document.getElementById('f' + upload_number).style.width = '500px';
document.getElementById('f' + upload_number).style.fontSize = '10px';
}
}
</script>
</head>
<body>
<p>Test dyn. Feld</p>
<form name="upload">
<div id="dynfelder">
<div><input style="font-size: 10px; width: 500px;" id="f1" name="file1" type="file" onChange="ergaenzefeld(this.id)"></div>
</div>
</form>
</body>
</html>