アプリ版:「スタンプのみでお礼する」機能のリリースについて

phpを利用したWebサイトで
ファイルをダウンロードさせる際に
転送速度を制御する帯域制御や、
同時にダウンロードする数を制御することなどは
できますでしょうか。

php以外のスクリプトでも方法があれば参考にしたいと思います。
php初心者でほとんどわかってませんが、
皆様、よろしくお願いいたします!

A 回答 (6件)

SESSIONという手もありますよ。

    • good
    • 0

PHPでファイルサイズからダウンロード時間を予測するか


JavaScriptでダウンロード完了を検知するか、でしょうか・・
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

なるほど、JavaScriptを使って
ウィンドウが閉じられるのを検地して、データを受信。
データを元に許可の設定に変える。
といった感じでしょうか。

JavaScriptもまったくの素人なので
調べてみますww ヒント頂けると嬉しいです!
ありがとうございます

お礼日時:2007/02/07 15:49

クッキーではなくてもPHPでファイル書き出しでログファイルを保存


保存されたログファイルから一定時間前にどれだけのダウンロードがあったかを調べて、規定以上のダウンロード数であれば、「またあとで」、規定以下ならダウンロードを許可
そのときに同時に古いログを消しておくとか?

あ、1人のアクセスに対してですか??全体のアクセスに関してであれば、上の方法
1人の人がダウンロードできる数を制限するなら上の方法にIPなども一緒に記録しておいて計測とか、簡単な方法ならcookie制限
ただしcookieは使えない人もいますから…
ログをとったほうがほかにもいろいろ使えますよ。

わからなければ、もう再度質問をしてください。
ユーザーのIPは$_SERVER['REMOTE_ADDR']です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

説明不足ですいません、一人一人のダウンロードに制限をかけたいのです。
同時にダウンロードできる数をいくつと設定したい感じです。

クッキーで制御する簡単なソースは作ってみました。
クッキーの有効期間だけで制御するものですが、クッキー無効だと意味なさそうです。。

ユーザーのログを取る方法を検討してみたいと思います。
ログを取ってどのように振舞えばいいかはまだ思いついてませんが(笑

ダウンロードの終了を検地できればいいのですけど、
方法がよくわからないんです。

いろいろありがとうございます!よろしくお願いします!!

お礼日時:2007/02/07 13:44

php でファイルを読み込んでそれをクライアント側に読ませる、と考えると、


1 適当な容量(たとえば 10KB)読み込む
2 クライアント側に出力
3 特定時間ウェイト
4 1 に戻る
とかでしょうか。きっちりした数字では制限できませんが、ウェイト時間を調節すれば目的は果たせそう。

接続数制限に関しては、1 さんの言うとおりログを作るか、あるいは大人数になる可能性がある場合は、接続情報をデータベースに持ったほうが楽かもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ウェイト調整の方法、参考にさせて頂きたいと思います。ありがとうございます。

接続数制限ですが、
全体にかけるのではなく、利用者一人づつに
同時にダウンロードできるのはいくつまで、
といったようにできればと考えています。
ただ、ダウンロードの終了をどのようにサイト側で検地すればいいのか。。
そこが悩んでいます。。

お礼日時:2007/02/07 13:37

実際に転送を行っているのは Web サーバなので、そちらの設定になるのではないでしょうか。

>参考 URL
ただ、自前のサーバでないとここら辺の設定はきついかも。

参考URL:http://www.atmarkit.co.jp/flinux/rensai/apache2_ …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
レンタルサーバなので、アパッチでの作業が難しそうなんです。。

お礼日時:2007/02/06 17:31

簡単な方法だとダウンロードされるごとに時間入りのログを作る


次にダウンロードされたときには一定時間前にどれだけダウンロードされたかを調べて、数を制限する
    • good
    • 0
この回答へのお礼

回答ありがとうございます!
クッキーなどを使って、
最初のダウンロード時に時間情報などをクッキーにセット、
続けてのダウンロードでも、一定時間経過していないため
メッセージを出してダウンロードを抑制。
時間が経過してOKになったら次のダウンロードを許可する。
といった感じでよろしいでしょうか。

参考のソースなどを教えて頂けると大変嬉しいです!
よろしくお願いします

お礼日時:2007/02/06 16:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!