2008-09-16 3 views
0

イメージギャラリーから誰がどのイメージをダウンロードしているかを知る方法を見つけようとしています。ユーザーは、サムネイルの横にあるボタンを使用してダウンロードするか、右クリックして「リンクを保存」を使用できます。PHPまたはJavaScriptを使用して、すべてのブラウザからユーザーセッションまたはIDをすべてのブラウザから「リンクを保存」アクションに関連付けることは可能ですか?ロギングイメージのダウンロード

答えて

0

ImageDownload.php?picture = me.jpgなどのゲートウェイスクリプトが必要です。

そのページは画像のバイトを返すだけでなく、画像がダウンロードされたことを記録します。

0

保存されている画像はローカルにあるため、既に画像をシステムから取得しているため、そのような情報を得る方法はありません。 JavaScriptを使用しても、私ができることは、ユーザーが何らかのajax'yものを使って2番目のマウスボタンを押すたびにログを記録することです。

アイデアは本当に好きではありませんが、画像をダウンロードするたびにログを記録したい場合は、ダウンロード画像ボタンをクリックする必要があるフラッシュまたはJavaアプリ内で画像をホストできます。そうすることなく、画像を取得する唯一の方法は、パケットが自分の側に来たときにキャプチャするか、スクリーンショットを撮ることです。

1

はい、これを行うための私の好きな方法は、PHP経由です。ファイルをロードしてユーザーのブラウザに送信するスクリプトを設定する必要があります。このスクリプトでは、どこかの場所(たとえば、データベース)にダウンロードを記録することもできます。例えば

- 非常にラフな擬似コードで:

download.php

$file = $_GET['file']; 
updateFileCount($file); 
header('Content-Type: image/jpeg'); 
sendFile($file); 

はその後、あなただけの実際のファイルの代わりにdownload.phpためにあなたのダウンロードリンクポイントを持っています。 (updateFileCountとsendFileは、あなたが提供しなければならない機能です) - this scriptは、使用できるダウンロードスクリプトの例です)

注:$ _GET ['file']の使用を避けることを強くお勧めします。 ]を使用してファイル名全体を取得します。悪意のあるユーザーは、このファイルを使用してWebサーバーから機密ファイルを取得できます。しかし、PHPダウンロードを安全に使用することは、別の質問のトピックです。

0

サーバーアクセスログには、サムネイル化されていないバージョンのファイルに対する要求が既にあるはずです。セッションIDを含めるようにログ形式を変更するだけで済みます。

0

私はPhill Sacreによって提唱された提案に強く同意します。あなたが探しているものは、これが道です。

また、直接リンクすることができないように、追跡されたファイルをダイレクトWebパスから守ることができるという利点もあります。

この方法は、画像が有料コンテンツであるクライアントサイトで使用するため、アクセスを制限する必要があります。

関連する問題