daydreamer Posted September 23, 2009 Share Posted September 23, 2009 Hi. I need to output alot of mysql data (100+mbs) from a table, and allow the user to download to CSV. The script was looping each row, saving it to $csvOutput and then outputing to the users browser: <?php header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=".$fileName); echo $csvOutput; ?> But now the data has got too big to store in the RAM and is giving PHP errors. So now I am storing it to a text file. How can I make it secure so that only the user who has logged in can download this file (and not somebody who enters the URL of the file)? Link to comment https://forums.phpfreaks.com/topic/175195-solved-outputting-mysql-data-to-csv-without-taking-loads-of-ram-memory/ Share on other sites More sharing options...
PFMaBiSmAd Posted September 23, 2009 Share Posted September 23, 2009 The script was looping each row, saving it to $csvOutput and then outputting to the users browser: Output the headers first, then output each row in the loop instead of saving it in $csvOutput. How can I make it secure so that only the user who has logged in can download this file Add a check at the start of the code you posted above to make sure the current visitor is logged in. Link to comment https://forums.phpfreaks.com/topic/175195-solved-outputting-mysql-data-to-csv-without-taking-loads-of-ram-memory/#findComment-923448 Share on other sites More sharing options...
daydreamer Posted September 23, 2009 Author Share Posted September 23, 2009 Thanks, that did the trick. Link to comment https://forums.phpfreaks.com/topic/175195-solved-outputting-mysql-data-to-csv-without-taking-loads-of-ram-memory/#findComment-923557 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.