2012-02-28 11 views
2

ダウンロードマネージャにダウンロードする範囲を1つだけにしたい。強制的に1つの範囲をダウンロードする

私のダウンロードマネージャは、私のPHPファイルから複数の範囲をリクエストしていますが、これは起こりたくありません(私はその理由があります)。私は実際にこの問題を解決するためのトリックを発見した

if ($_SERVER['REQUEST_METHOD']=='GET' && isset($_SERVER['HTTP_RANGE']) && $range=stristr(trim($_SERVER['HTTP_RANGE']),'bytes=')) 
{ 
$arrr = explode('-', $range); 
if (isset($arrr[1])) die(); 
$f= fopen('era','w'); 
fwrite($f, $range); 
fclose($f); 
$start_range = $arrr[0]; 
$range=substr($range,6); 
header("Content-Range: bytes $range/$filesize"); 
} 

答えて

1

私は任意の第2の範囲の接続が、コードに問題があることを阻止するために、このコードを使用しています、履歴書が無効になっている、それはプロのやり方ではないかもしれませんが、それは魅力のように働く。私はヘッダーの範囲をチェックし、xxxxバイトから最後までそれが許せばそれを許可します。 xxxからyyyの範囲を要求すると、ダウンロードマネージャが有効な応答を待つように、悪いヘッダを送信しますが、操作が完了するまでに時間がかかり、要求は繰り返されません。ここに、魅力を作る簡単なifコマンドがあります

$range=substr($range,6); 
$arrr = explode('-', $range); 
$start_range = $arrr[0]; 
if(!isset($arrr[1])) header("Content-Range: bytes $range/$filesize"); 
else header("Content-Range: bytes bytes $arrr[0]");//bad header 
関連する問題