----- Original Message ---- > From: Chris Payne <chris_payne@xxxxxxxxxxxxxxx> > To: php-general@xxxxxxxxxxxxx > Sent: Thursday, September 24, 2009 2:57:57 PM > Subject: Downloader help needed :-( > > HI everyone, > > Thanks for those of you in the past that helped me with my downloader > not displaying the filename. Someone gave me a link to the downloader > below which works GREAT but i've tried and tried to limit the data > transfer to 60KB a second andI can't get it to work, can any of you > see what I could add to get it to work? The first peice of code the > code I WANT to use as it lets me download with the correct filename > etc ...... but the second piece of code allows me to limit the speed > of the transfer but when I try to merge the second with the first it > craps out on me. > > Any help would REALLY be appreciated on this one. > > Thanks everyone. > > Piece of code 1 (Code I WANT to use) > > function forceDownload($file) { > /** > * Function forceDownload: > * download any type of file if it exists and is readable > * ------------------------------------- > * @author Andrea Giammarchi > * @date 18/01/2005 [17/05/2006] > * @compatibility PHP >= 4.3.0 > */ > if(file_exists($file) && is_readable($file)) { > $filename = basename($file); > if(strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), 'MSIE') !== false > && strpos($filename, '.') !== false) { > $parsename = explode('.', $filename); > $last = count($parsename) - 1; > $filename = implode('%2E', array_slice($parsename, 0, $last)); > $filename .= '.'.$parsename[$last]; > }; > header('Content-Type: application/octet-stream'); > header('Content-Disposition: attachment; filename="'.$filename.'"'); > header('Content-Length:'.filesize($file)); > header('Content-Transfer-Encoding: binary'); $speed = 60; // i.e. 60 kb/s download rate > if(@$file = fopen($file, "rb")) { > while(!feof($file)) { // echo fread($file, 8192); echo fread($fd, round($speed*1024)); // $speed kb at a time flush(); sleep(1); } fclose($file); > }; > exit(0); > }; > > }; > > Piece of code 2 (Which limits nice but has other issues) > > $speed = 60; // i.e. 60 kb/s download rate > if(file_exists($file) && is_file($file)) { > header("Cache-control: private"); > header("Content-Type: application/octet-stream"); > header("Content-Length: ".filesize($file)); > //header("Content-Disposition: filename=$file" . "%20"); > > header("Content-Disposition: attachment; filename=\"$file\""); > > flush(); > $fd = fopen($file, "r"); > while(!feof($fd)) { > echo fread($fd, round($speed*1024)); // $speed kb at a time > flush(); > sleep(1); > } > fclose ($fd); > } > > Thank you everyone, it's really appreciated. > > Chris > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php Try the above changes. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php