2017-06-14 23 views
1

私はPHPのサイトを持っている私のダウンロードは、次のコードを使用して打撃を受ける回数を追跡しようとしています:PHPのトラッキング大容量ファイルのダウンロード数

   //update download count 
       update_attachment_counter($attachment); 

       // We'll be outputting a PDF 
       header ('Content-Type: application/pdf'); 
       header ('Content-Disposition: inline; filename="fileName.pdf"'); 
       header('Content-Length: ' . filesize($attachment)); 
       readfile ($attachment); 
       die(); 

を、私は私のカウンターは、ダウンロードごとに複数回上がる見ています。添付ファイルのサイズは2〜30MBです。それは私がダウンロードごとに複数の要求を見ているので、それは作るのですか?各ダウンロードを1回だけトラッキングするにはどうすればよいですか?

+1

はおそらくダウンロードは、ネットワークの障害のために、ユーザによって再起動されるようになるORありますされて参照してください。 update_attachment_counter(あなたが投稿しなかったコード)のエラー – developerwjk

+0

update_attachment_counterはデータベース値で++を行います。私はそれに続いてすぐに死ぬ場合、エキサイティングな素晴らしいことはありません。スキーマなどを投稿する気がしなかった: – mjr

+0

update_attachment_counterをdate、ip、fileのログに変更するとデバッグが簡単になるだろう。カウントのためのquerryを行うのはまだ簡単です – rtfm

答えて

1

ファイルサイズが大きいため、部分的なダウンロード要求が発生しています。それは元の要求または部分的に要求した場合HTTP_RANGEをチェックして、私は決定することができた:

if(!isset($_SERVER['HTTP_RANGE'])) 
{ 
    .... update counter 
} 

using php to download files, not working on large files?

関連する問題