rendered paste body#!/usr/bin/perl
use CGI;
my $base = "/tmp/";
my $query = CGI->new;
my $filename = $query->param('filename');
if ($filename eq "") {
$filename = $ARGV[0];
print "Doing this from the command line, since no cgi passed\n";
}
$filename =~ s/\.\.//g;
my $goodfilename = $base . $filename . '/';
print "Reading dir: $goodfilename\n";
opendir('DIR', $goodfilename);
my @files = readdir('DIR');
closedir('DIR');
my @goodfiles;
while(@files) {
my $workline = shift(@files);
if (($workline ne '..') && ($workline ne '.') && ($workline ne "$filename")) {
push(@goodfiles, $workline);
}
}
#print "@goodfiles";
print "Content-disposition: attachment; filename=$goodfiles[0]\n";
print "Content-type: archive/zip\n\n";
my $realfile = $base . $goodfiles[0];
open(FILE, "< $realfile");
my @dat = <FILE>;
close(FILE);
print @dat;
#open(LOG, "> /tmp/downloadscript.txt");
#print LOG "filename: $filename\nshortfile: $shortfile\nrealfile: $realfile";
#close(LOG);