Hız limiti ile dosya indirmek
Dosya indirdiğimiz çoğu dosya paylaşım sitesinde bu hız limiti durumlarına rastlamışsınızdır. “bize üye olun ve dosyayı daha hızlı indirin” gibisinden bir uyarı da vardır. Biz de sunucumuzdan dosya çekecek olan müşteri, arkadaş ya da benzeri kişilere bu hız limitini ayarlayabiliriz. Onların dosyayı yavaş indirmesini sağlayabiliriz. Php ile yazılmış bir kod bu ayarı yapmamızı sağlayacaktır.
Hız Limiti Ayarını Yapmak
Ayrıca bu tarz bir limitleme koymak Bandwith (bant genişliği) harcamamıza da etkisi olacaktır (iyi anlamda).
Kod;
// İndirilecek lokal dosya
$local_file = 'test-file.zip';
// dosyanın kaydedilecek adı
$download_file = 'your-download-name.zip';
// Dosya indirme hızı ayarı (=> 20,5 kb/s)
$download_rate = 20.5;
if(file_exists($local_file) && is_file($local_file)) {
// headerleri ayarla
header('Cache-control: private');
header('Content-Type: application/octet-stream');
header('Content-Length: '.filesize($local_file));
header('Content-Disposition: filename='.$download_file);
// içeriği temizle
flush();
// dosyayı aç
$file = fopen($local_file, "r");
while (!feof($file)) {
// taryıcıya dosyayı gönder
print fread($file, round($download_rate * 1024));
// tarayıcıdaki içeriği temizle
flush();
// bir saniyelik uyku
sleep(1);
}
// dosya istemini kapat
fclose($file);
}
else {
die('Hata: '.$local_file.' dosyası bulunamadı!');
}
Selametle