我需要提供一个大文件 (500+ MB) 以便从 Web 服务器无法访问的位置下载。我发现了Serving large files with PHP的问题,这与我的情况相同,但我使用的是 Perl 而不是 PHP。
我尝试简单地逐行打印文件,但这不会导致浏览器在获取整个文件之前提示下载:
use Tie::File;
open my $fh, '<', '/path/to/file.txt';
tie my @file, 'Tie::File', $fh
or die 'Could not open file: $!';
my $size_in_bytes = -s $fh;
print "Content-type: text/plain\n";
print "Content-Length: $size_in_bytes\n";
print "Content-Disposition: attachment; filename=file.txt\n\n";
for my $line (@file) {
print $line;
}
untie @file;
close $fh;
exit;
Perl 是否具有与 PHP 的功能等效的readfile()
功能(如 PHP 所建议的那样),还是有办法完成我在这里尝试做的事情?