Thread FTP Download
(47 answers)
Opened by volker.55211 at 2019-03-18 16:20
Wenn das CGI-Skript die Datei selber erstellt und es nur eine Datei ist, dann liefere sie doch gleich über das CGI-Skript selber aus.
[edit] Hier ein einfaches und getestetes Beispiel dazu: Code (perl): (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 #! /usr/bin/env perl use strict; use warnings; use CGI; use File::Basename qw( basename ); my $generated_file = "/tmp/x.png"; # here happens the magic and $generated_file is generated my $cgi = CGI->new(); print $cgi->header( '-type' => 'image/png', '-attachment' => basename($generated_file), ); open my $fh, '<', $generated_file or die "open($generated_file) failed: $!"; binmode($fh); # for binary data { local $/ = \1024; # deliver in 1 kiB chunks print $_ for <$fh>; # deliver data } close $fh; Wenn Du sogar Perl-Code hast, der die Daten in ein Filehandle schreiben würde, könntest Du den Umweg über die Datei sparen und direkt die Daten ausgeben: ungetestetes Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 #! /usr/bin/env perl use strict; use warnings; use CGI; my $fake_filename = "x.png"; my $cgi = CGI->new(); print $cgi->header( '-type' => 'image/png', '-attachment' => $fake_filename, ); # let's assume, generate_png() generates a valid PNG data stream print generate_png(); Last edited: 2019-03-20 23:55:02 +0100 (CET) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |