2012-01-28 13 views
3

私はこのコードをここに用意していますが、ユーザーがダウンロードできる速度を制限したいのですが、このコードにどのように実装すればいいですか?PHPを使用したダウンロード速度の制限

header("Content-type: application/force-download"); 
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-length: ".filesize("uploads/$filename")); 
    header("Content-disposition: attachment; filename=\"$origname"); 
    readfile("uploads/$filename"); 

ありがとうございます!

これは私が試みたものです。

$download_rate = 100; 

$ origname = get_file_name($ file [0]);

header("Content-type: application/force-download"); 
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-length: ".filesize("uploads/$filename")); 
    header("Content-disposition: attachment; filename=\'$origname'"); 

    $local_file = "uploads/$origname"; 

//フラッシュコンテンツ フラッシュ();

// open file stream 
$file = fopen($local_file, "r"); 

while (!feof($file)) { 

    // send the current file part to the browser 
    print fread($file, round($download_rate * 1024)); 

    // flush the content to the browser 
    flush(); 

    // sleep one second 
    sleep(1); 
} 

// close file stream 
fclose($file); 

なぜこれは機能しませんか?

答えて

1

に役立ちます。

私はそれを推測;:

ヘッダ(; $のorignameは「 "ファイル名= \添付ファイルのContent-処分:")スニペットの例では、あなたが欠落しているエスケープ引用符を持っているようです次のようになります。

ヘッダ( "コンテンツディスポジション:添付ファイル;ファイル名= \" $のorignameはの\ "");あなたの中の関数freadで

1

希望あなたはどこか別の問題がある可能性があります示唆したものを@mugurしようとした場合、これはhttp://www.jonasjohn.de/snippets/php/dl-speed-limit.htm

+0

ええ、私はこの1つを読んだことがありますが、私は実際にそれを統合する方法が必要です、私は試して失敗したように! – HarryBeasant

+2

まあ、何を試しましたか?どのように失敗したのですか?これは良い出発点のようですので、皆さんがすでに行ったことをやり直すように求めないでください。 – Hamish

+2

エラーが出るか、速くダウンロードするか、失敗したか? – Mike

0

、ちょうどバイトを計算し、T imestamps。その後、usleepを使用して小さな休止を追加します。

関連する問題