1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| // si la reprise est permise ...
if ($this->properties["resume"] == "on") {
if(isset($_SERVER['HTTP_RANGE'])) { // vérifier si http_range est envoyé par le navigateur (ou download manager)
list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']);
ereg("([0-9]+)-([0-9]*)/?([0-9]*)",$range,$range_parts); // parsing Range header
$byte_from = $range_parts [1]; // l'intervalle de téléchargement: de $byte_from ...
$byte_to = $range_parts [2]; // ... à $byte_to
} else
if(isset($_ENV['HTTP_RANGE'])) { // quelques serveurs web utilisent plûtot $_ENV['HTTP_RANGE']
list($a, $range)=explode("=",$_ENV['HTTP_RANGE']);
ereg("([0-9]+)-([0-9]*)/?([0-9]*)",$range,$range_parts); // parsing Range header
$byte_from = $range_parts [1]; // l'intervalle de téléchargement: de $byte_from ...
$byte_to = $range_parts [2]; // ... à $byte_to
}else{
$byte_from = 0; // si aucun entête http_range n'est envoyé, envoyer tout le fichier de l'octet 0 ...
$byte_to = $this->properties["size"] -1; // ... au dernier octet
}
if ($byte_to == "") // si l'octet de fin n'est pas spécifié ...
$byte_to = $this->properties["size"] -1; // ... lui affecter le dernier octet
header("HTTP/1.1 206 Patial Content"); // envoyer l'entête de téléchargement partiel
// ... sinon, télécharger tout le fichier
} |
Partager