You can make a php server side script to do that.
You just send a special oclet stream header before the file like so:
CODE
<?php
$speed_limit_on = '1'; // Set this to 1 or 0
$speed = 25; // 25KB/s
$file = $_SERVER['DOCUMENT_ROOT'].$_GET['f'];
if(file_exists($file) && is_file($file)) {
$file_name = explode($slash,$file);
$file_name = $file_name[(count($file_name) - 1)];
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($file));
header('Content-Disposition: filename="'.$file_name.'"');
flush();
// Download File With Limits
$fd = fopen($file,'r');
while(!feof($fd)) {
print fread($fd, round($speed * 1024));
flush();
if($speed_limit_on) sleep(1);
}
fclose($fd);
}
?>
Edit the speed limit and speed in kB/s you want, and save this in a file called download.php on the root of your server, and link the files like so:
<a href="www.YOURSITE.com/download.php?f=/FILENAME">FILENAME</a>
It may also contain dirs: www.YOURSITE.com/download.php?f=/DIR1/SUBDIR1/../FILE
Hope this helps.