Hi,
I spent ages figuring this one out so it work work on Windoze, Linux, Mac, ...
and this *always* works:

Create a hyperlink for user to click on:
echo ' <td class="nbcc">
  <ahref="'.$PHP_SELF.'?action=*&download=txt">Download TXT</a></td>';

On click, we come back in to this:
if ( $action == '*' ) {
  if ( isset( $download ) ) {
    downloadFile( $download );

we have a fn to do the biz:
function downloadFile( $type ) {
  global $PHPSESSID;
  // is it a .txt file or an .rtf file
  if ( $type == 'txt' ) {
    // write the stuff to a text file: /downloads/$PHPSESSID.txt
    include( '../include/mkcribsheet_txt.inc' );
   // download the file
   if ( file_exists( $txtfile ) ) { 
     $size = filesize( $txtfile ); 
     // this goes all on one line
     header( "Content-Type: text/x-c; 
                       charset=\"iso-8859-1\";                                
                       name=\"$txtfile\"" );
     header( "Content-Length: $size" ); 
     header( "Content-Transfer-Encoding: base64" ); 
     header( "Accept-Ranges: none" );
     // You could have filename="$txtfile\""  here.  I don't becos the user
     // gets his "save as" box with $PHPSESSID.txt which is ugly
     header( "Content-Disposition: attachment; filename=\"cribsheet.txt\"" );
     header( "Content-Description: PHP Generated Cribsheet" ); 
     $fp = fopen( "$txtfile", "r" );
    fpassthru( $fp );
     // delete the PHPSESSID.txt file
     unlink( "$txtfile" );
     // delete the PHPSESSID from the cribsheet so user can go again
     $query = "update cribsheet set sess_id='' where sess_id='$PHPSESSID'";
     dbCribsheetUpdate( $query );
     }
   exit;
}

good luck

Donna


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to