我想为我的访问者提供一个文件以供下载到他们的本地计算机(例如 Windows7 的下载目录)。下面的代码运行良好,但前提是文件与脚本位于同一台机器上:
#!/usr/bin/perl
my $path = "samples/10000.mp3"; ##PATH_TO_FILE
my $file = "10000.mp3";
print "Content-Type:application/octet-stream; name=\"$file\"\r\n";
print "Content-Disposition: attachment; filename=\"$file\"\r\n\n";
open( FILE, $path );
while(read(FILE, $buffer, 100) ){
print("$buffer");
}
问题是有问题的文件位于另一台机器上,所以我必须获取下载的 url。我认为下面的编码可以解决问题,但无论我尝试什么,我最终都会下载一个 0 字节的文件。有人可以告诉我我做错了什么吗?
#!/usr/bin/perl
use LWP::Simple;
my $url = 'http://<sampleurl>.com';
my $file = '10000.mp3';
my $path = get($url);
print "Content-Type:application/octet-stream; name=\"$file\"\r\n";
print "Content-Disposition: attachment; filename=\"$file\"\r\n\n";
open my $fh, '+>', $path;
while(read($fh, $buffer, 100) ){
print("$buffer");
}