Thread Download bricht Ladevorgang der Webseite ab (12 answers)
Opened by perli at 2005-06-27 17:53

perli
 2005-06-27 19:10
#29515 #29515
User since
2003-09-12
23 Artikel
BenutzerIn
[default_avatar]
...so...
Hallo,

die Frage war nicht schlecht :-)
Jetzt habe ich das Ganze mal ein wenig abstrahiert.

In dem folgenden Code wird einfach nur eine Datei test.txt downgeloaded, wenn man Senden drückt. Feldwert ist egal.

Mein Problem ist nun, daß meine Seite nicht neu geladen wird, also der alert('aha') nicht ausgeführt wird.

Wenn ich das Ganze in einem eigenen Fenster aufrufe mit window.open, bleibt beim Canceln das neue Fenster stehen. Außerdem sieht das zusätzlich Fenster blöd aus und ist unnötig.

Idee?

Danke & Gruß,
 Roger

Code: (dl )
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/usr/bin/perl -w

use strict;
use CGI qw(:standard escapeHTML);
use CGI::Carp qw(fatalsToBrowser);

my $ausgabe = "";
my $downloadaufruf = "";

my $wert   = param('wert')   || "";
my $button = param('action') || "";

if ($button eq "Senden") {
 $ausgabe .= "...senden gedrückt...<br>";
 $ausgabe .= "Wert = $wert <br>";
 download("test.txt");
 $downloadaufruf = "alert('aha');";
}

my $html = <<"(END OUT HTML)";
 <html><head>
 <title>Test</title>
 <script language=\"JavaScript\">
 <!--
    $downloadaufruf
 // -->
 </script>
 </head>
 <body>
 <FORM METHOD="POST">
 $ausgabe
 <input type="text" name="wert">
 <input type="submit" name="action" value="Senden">
 </FORM>
 </body>
 </html>
(END OUT HTML)

print "Content-Type: text/html\n\n",
     $html;
1;

sub download {
 my $file = shift;
 print "Content-Type: application/octet-stream\n";
 print "Content-Disposition: attachment; filename=$file\n\n";
 open(FH,"<$file");# || die "mist";
 binmode FH;
 binmode STDOUT;
 print while(<FH>);
 close FH;  
}

View full thread Download bricht Ladevorgang der Webseite ab