newbtophp Posted March 11, 2010 Share Posted March 11, 2010 Hmm i have a problem, im encoding a string and writing it to a file, and then downloading it using header() however i want the downloaded file to contain the decoded string (base64_decode), but i need to do this without echoing/printing the decoded output or writing the decoded output anywhere? (like readfile), my code: <?php $file = 'file.txt'; $handle = fopen($file, "w"); fwrite($handle, base64_encode($string)); fclose($handle); header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename='.basename($file)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); //decode it in memory without echoing or writing it anywhere... readfile(base64_decode($file)); exit; ?> PS: Cant really explain why i specifically need it to be decoded in memory (so its not echo'd or written anywhere). - as it would be tough to explain. :-\ Link to comment https://forums.phpfreaks.com/topic/194950-header-download-without-echoing/ Share on other sites More sharing options...
newbtophp Posted March 12, 2010 Author Share Posted March 12, 2010 Anyone? Perhaps changing: header('Content-Transfer-Encoding: binary'); too: header('Content-Transfer-Encoding: base64'); ? Link to comment https://forums.phpfreaks.com/topic/194950-header-download-without-echoing/#findComment-1025380 Share on other sites More sharing options...
newbtophp Posted March 13, 2010 Author Share Posted March 13, 2010 Bring Up My Post Link to comment https://forums.phpfreaks.com/topic/194950-header-download-without-echoing/#findComment-1025561 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.