yes, by sending the proper headers and then the data.
PHP Code:
$fp = fopen('filename.tgz');
if ($fp)
{
header('Content-Type: application/octet-stream; name="filename.tgz"');
header('Content-Length: '.filesize('filename.tgz'));
header('Content-Disposition: attachment; filename="filename.tgz"');
fpassthru($fp);
fclose($fp);
}