Sounds like you have a pretty good handle on this problem.
You will have to send the right Content-type header to get
the browser to handle the download correctly. Then, STDOUT
will send the data to the user.
Filename in HTTP header? has information about setting a default
filename for downloads. merlyn has a link to one of his
recent articles about this. Basically, you will set the
action attribute of the form to yourscriptname.cgi/FileName
The '/FileName' part will be ignored by the script, but
probably used by the browser when setting the default
filename for the download.
Just as an example, I have a file 'junk.html' with
<form action=test.cgi/JunkName><input type="submit" name="Test"></form
+>
The '/JunkName' is to make the browser default to JunkName
in the file save window.
This submits to test.cgi, which looks like:
#!/usr/bin/perl
use CGI;
print CGI::header(-Content-type=>'text-plain');
print 'This is a file'
When you click the submit button, the file save dialog comes
up with JunkName as the filename.
Note: this is not a good example of good CGI programming!
Concept only, please. :-)
Russ
Brainbench 'Most Valuable Professional' for Perl |