in reply to Downloading things from a database

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