Use readfile() function to reduce the memory footprint (and solve following);
authorS.Çağlar Onur <caglar@cs.princeton.edu>
Fri, 16 Apr 2010 19:46:24 +0000 (19:46 +0000)
committerS.Çağlar Onur <caglar@cs.princeton.edu>
Fri, 16 Apr 2010 19:46:24 +0000 (19:46 +0000)
PHP Fatal error:  Allowed memory size of 157286400 bytes exhausted (tried to allocate 92702721 bytes) in /var/www/html/planetlab/nodes/node_downloads.php on line 63

planetlab/nodes/node_downloads.php

index 2577c56..d43ada6 100644 (file)
@@ -59,9 +59,11 @@ function deliver_and_unlink ($filename) {
   header ("Pragma: hack");
   header ("Cache-Control: public, must-revalidate");
 
-  // outputs the whole file contents
-  print (file_get_contents($filename));
-  
+  // turn off output buffering
+  ob_end_flush();
+  // outputs the whole file contents without copying it to memory
+  readfile($filename);
   // unlink the file
   if (! unlink ($filename) ) {
     // cannot unlink, but how can we notify this ?