Limite en PHP la vitesse de download

Vous avez de gros fichiers à télécharger et vous voulez contrôler la bande passante. Ce code devait vous aider.

Le principe est simple, on télécharge le nombre de Kb que l'on paramètre dans le code ( 50 par defaut) et on attend 1 seconde sleep(1) puis on reprend le téléchargement.


Information sur les mises à jour

Dernière mise à jour :

22 Août 2019
fonctionnement du code vérifié

21 Jan 2026
fonctionnement du code vérifié en PHP 8

10 093  vues
Compatibilité du code
PHP 5, PHP 7 et PHP 8
  code classé dans   Applications
  code source classé dans   Applications
 
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
                    
<?php
/*------------------------------*/
/*
Titre : Limite en PHP la vitesse de download

Auteur : Matt
Date édition : 27 Avril 2008
Date mise a jour : 22 Aout 2019

Rapport de la maj:
- fonctionnement du code vérifié
Date mise a jour : 21 Jan 2026

Rapport de la maj:
- fonctionnement du code vérifié en PHP 8
*/
/*------------------------------*/

$file = "somefile.zip"; // Nom du fichier
$speed = 50; // i.e. 50 kb/s temps de telechargement
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");
flush();
$fd = fopen($file, "r");
while(!feof($fd)) {
echo fread($fd, round($speed*1024)); // $speed kilobytes (Kb)
flush();
sleep(1);
}
fclose ($fd);
}
?>
<?php
/*------------------------------*/
/*
Titre : Limite en PHP la vitesse de download

Auteur : Matt
Date édition : 27 Avril 2008
Date mise a jour : 22 Aout 2019

Rapport de la maj:
- fonctionnement du code vérifié
Date mise a jour : 21 Jan 2026

Rapport de la maj:
- fonctionnement du code vérifié en PHP 8
*/
/*------------------------------*/

$file = "somefile.zip"; // Nom du fichier
$speed = 50; // i.e. 50 kb/s temps de telechargement
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");
flush();
$fd = fopen($file, "r");
while(!feof($fd)) {
echo fread($fd, round($speed*1024)); // $speed kilobytes (Kb)
flush();
sleep(1);
}
fclose ($fd);
}
?>

      Fonctions du code - Doc officielle PHP

   php.net  
Description
Versions PHP
    echo
Affiche une chaîne de caractères
PHP 4, 5, 7 et 8
    fclose
Ferme un fichier
PHP 4, 5, 7 et 8
    feof
Teste la fin du fichier
PHP 4, 5, 7 et 8
    filesize
Lit la taille d'un fichier
PHP 4, 5, 7 et 8
    file_exists
Vérifie si un fichier ou un dossier existe
PHP 4, 5, 7 et 8
    flush
Vide les tampons de sortie du système
PHP 4, 5, 7 et 8
    fopen
Ouvre un fichier ou une URL
PHP 4, 5, 7 et 8
    fread
Lecture du fichier en mode binaire
PHP 4, 5, 7 et 8
    header
Envoie un en-tête HTTP brut
PHP 4, 5, 7 et 8
    is_file
Indique si le fichier est un véritable fichier
PHP 4, 5, 7 et 8
    round
Arrondit un nombre à virgule flottante
PHP 4, 5, 7 et 8
    sleep
Arrête l'exécution durant quelques secondes
PHP 4, 5, 7 et 8
Minimum 10 mots. Votre commentaire sera visible après validation.


 Autres snippets qui pourraient vous intéresser

Limiter la vitesse de download d'un fichier zip

Compatibilité : PHP 5, PHP 7, PHP 8

Ce snippet limite la vitesse de téléchargement d'un fichier zip. Il est applicable directement dans un script.

Limite la vitesse de téléchargement d'1 fichier

Compatibilité : PHP 5, PHP 7, PHP 8

Cette fonction vous permettra de limiter volontairement la vitesse de téléchargement d'un ficher stocké sur un serveur local.

* Requêtes exécutées avec Recherche Contextuelle

  Les derniers scripts

PHP 8.5.5

logo PHP
Langue langue us
Date 12 Avril
Taille 32 Mo
Catégorie PHP

PHP 8.4.20

logo PHP
Langue langue us
Date 12 Avril
Taille 30 Mo
Catégorie PHP

Serendipity 2.6.0

logo Serendipity
Langue langue fr
Date 11 Avril
Taille 15 Mo
Catégorie Blogs

Drupal 11.3.6

logo Drupal
Langue langue us
Date 11 Avril
Taille 34 Mo
Catégorie CMS

TYPO3 14.2.0

logo TYPO3
Langue langue fr
Date 10 Avril
Taille 38 Mo
Catégorie CMS

Dolibarr ERP 23.0.1

logo Dolibarr ERP
Langue langue fr
Date 09 Avril
Taille 89 Mo
Catégorie Logiciels
avatar

Matt

  27 Avril 2008

  SOURCE   Télécharger

Information sur les mises à jour

Dernière mise à jour :

22 Août 2019
fonctionnement du code vérifié

21 Jan 2026
fonctionnement du code vérifié en PHP 8

10 093 Vues
Compatibilité du code
PHP 5, PHP 7, PHP 8