Perhaps a piece of the puzzle: Your magic line Content-Disposition: attachment\; filename=$file is what suggests the filename for the browser. CGI's multipart_start() function does not print this. However, you should be able to pass it yourself:
print multipart_start( -TYPE=>'application/octet-stream', '-Content-Disposition'=>"attachment\; filename=test.tgz", # Have t +o quote the directive here );
An aside: I don't know how, offhand, to determine the current filename using merlyn's code, other than a kludge like $filename = $ARGV[$count++]; since $_ is the contents of each file, not the file's name.
Update: Sorry if this is obvious: Don't forget to try running it from a command-line to debug. That will let you see the exact headers and file contents the script is printing.
Cheers!
In reply to Re: CGI.pm woes with multipart attachments
by sedhed
in thread CGI.pm woes with multipart attachments
by zentara
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |