1

ユーザーに通常のファイル (mp3 または写真) を送信し、HTML/PHP ページを経由せずにこのファイルにアクセスした回数をカウントする方法を探しています。

たとえば、ユーザーはブラウザで bla.com/file.mp3 を指定してダウンロードを開始しますが、サーバー側のスクリプトはデータをデータベースに保存するようなことを行います。

どこから始めればよいですか?

ありがとう!

4

3 に答える 3

1

php スクリプトを実行する必要があります。できることは、追跡する拡張子を、できればフォルダー レベルで、必要な計算を行い、ユーザーにファイルを提供する php スクリプトに書き直すことです。

例えば:

/downloads/ フォルダーを追跡したい場合は、web サーバー上で書き換えを作成して、php ファイルのすべてまたは特定の拡張子のみを書き換えます。この例では、proxy.php を呼び出します。

URI の例は proxy.php?file=file.mp3 です。proxy.php スクリプトは file パラメータをサニタイズし、該当する場合はユーザーがダウンロードする権限を持っているかどうかを確認し、ファイルが存在するかどうかを確認し、ファイルをクライアントに提供して、データベースの更新などのバックエンドで必要な操作.

于 2012-09-21T13:23:53.800 に答える
0

ログファイルをスキャンする必要があります。いずれにせよ、カウンターをデータベースに保存したいと思いますか?

PHP を使用して静的ファイルを提供する優れたソリューションがあります。

https://tn123.org/mod_xsendfile/

于 2012-09-21T13:42:08.727 に答える
0

ユーザーに特定のページが表示されて、ユーザーの流れを中断させたくないということですか? その場合でも、次の手順を使用して PHP ページを使用できます。(私はPHPの最新情報ではないので、疑似コードになりますが、アイデアは得られます)

  • ファイルへのリンクを (たとえば) http://example.com/trackedDownloader.php?id=someUniqueIdentiferとして提供します。
  • tracedDownloader.php ファイルで、一意の ID に関連するサーバー上の実際の場所を特定します (たとえば、12345 は /uploadedFiles/AnExample.mp3 にマップできます)。
  • 出力に適切なコンテンツ タイプ ヘッダーを設定します。
  • リクエストをデータベースに記録します。
  • ファイルの内容をページ出力として直接返します。
于 2012-09-21T13:25:07.910 に答える