hallo,
vereinfacht sieht das so aus:
my $datei = 'download.datei';
my $pfad = 'pfad/zu/datei/' . $datei;
my $laenge = (stat("$path_file"))[7];
print "Content-Type:application/x-download\n";
print "Content-Length:$laenge;\n";
print "Cache-Control:private;\n";
print "Content-Disposition:attachment;filename=$datei\n\n";
open (FILE,"<$pfad");
binmode(FILE);
binmode(STDOUT);
while(defined(my $outfile = <FILE>)) {
print "$outfile";
};
close(FILE);
ich hab inzwischen ne andere loesung fuer den header gefunden, dabei muss ich nichtmal die laenge des files bestimmen:
~~~perl
print "Content-type: application/octetstream\n";
print "Content-disposition: attachment; filename=\"$fileName\"\n";
print "Pragma: public\n\n";
open ( FILE, "$downloadDir/$fileName") || (errorOut("Couldn't open: $fileName") );
while ( my $word = <FILE>) {
print "$word";
}
close FILE;
funktioniert das auch immer, oder gibt es faelle in denen nur deine Loesung funktioniert?
Ja, aber nicht vergessen, in den Binärmodus zu schalten.
das sollte ich wohl noch einbauen (obwohl es komischerweise auch anders geht)
mfG,
steckl