Domanda

Sto usando la funzione PHP virtual () per inviare file con Apache 2.2 (funziona più velocemente di readfile () ) e posso controllare i permessi di accesso dell'utente.

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.

È stato utile?

Soluzione

Prova a utilizzare XFilesend Module per Apache.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top