The best way indeed would be to have a loop that reads small chunks and then passes them on to the socket :
sub dl_file { my $file = param('file'); $file =~ s/^\.+//; $file =~ s/^\///; if (-e "$folder/$file") { open IN, "$folder/$file" or die "Cannot open file $file, $!\ +n"; my $filename = (reverse (split /\//, $file))[0]; print header(-type=>"application/x-msdownload", -attachment=>$filename, -cookie=>[$cookie1, $cookie2]); my $data; binmode IN; while ( read(IN,$data,16384)) { print $data; } close IN; } else { print $top, h1('Error'), p('file not found.'); print hr, a({-href=>"$me?command=MAIN"}, 'Back to Main'), $bot +tom; } }
perl -MHTTP::Daemon -MHTTP::Response -MLWP::Simple -e ' ; # The $d = new HTTP::Daemon and fork and getprint $d->url and exit;#spider ($c = $d->accept())->get_request(); $c->send_response( new #in the HTTP::Response(200,$_,$_,qq(Just another Perl hacker\n))); ' # web
In reply to Re: Reading a big file and passing to output
by Corion
in thread Reading a big file and passing to output
by Chady
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |