Invio di file tramite la funzione Apache e PHP virtual () con supporto HTTP_RANGE
-
28-10-2019 - |
Domanda
Sto usando la funzione PHP virtual () per inviare file con Apache 2.2 (funziona più velocemente di
Ma esiste un modo per aggiungere il supporto per il download continuo, con HTTP_RANGE?
Ho provato cose come questa
if(isset($_SERVER['HTTP_RANGE'])) {
list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']);
str_replace($range, "-", $range);
$size2=$size-1;
$new_length=$size-$range;
header("HTTP/1.1 206 Partial Content");
header("Content-Length: $new_length");
header("Content-Range: bytes $range$size2/$size");
apache_setenv('HTTP_RANGE', $_SERVER['HTTP_RANGE']);
} else {
$size2=$size-1;
header("Content-Range: bytes 0-$size2/$size");
header("Content-Length: ".$size);
}
Quindi il client web ha scaricato i file come se HTTP_RANGE funzionasse, ma in realtà Apache invia sempre gli stessi intervalli di file come: se il client chiede 4000-6000 byte, Apache invia 0-2000 e così via, quindi i file erano danneggiati.
Penso che ci sia un modo per farlo utilizzando apache_setenv, ma non riesco a trovare su Google alcun suggerimento al riguardo.
Soluzione
Prova a utilizzare XFilesend Module per Apache.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow