2017-05-25 9 views
0

私は、適切なファイルのダウンロードカウンタを更新するphpスクリプトを持っています(ファイルでヘッダを送信します)。しかし、ファイルの保存ダイアログでキャンセルボタンをクリックすると、カウンタもインクリメントされます。それは間違っているようだ。ファイルの保存ダイアログでキャンセルをクリックするとどうなりますか? (Javascript)

私の考えは、キャンセルボタンをクリックすると、ajaxリクエストとデクリメントカウンタを送信することです。しかし、どのようにキャンセルボタンのクリックを検出するには?

答えて

0

をやったときにインクリメントを行う必要があり、私はPHPでfreadを使用して、ファイルの一部をダウンロードするようなものを使用して私の問題を解決しました。

それは次のようになります。

// send file (it shows save file dialog) 
header('Cache-control: private'); 
header('Content-Type: application/octet-stream'); 
header('Content-Length: '.filesize($filepath)); 
header('Content-Disposition: filename='.$filename); 
flush(); 

$file = fopen($filepath, "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); 
} 

// if all are right and file was downloaded 
if (feof($file)) { 
    update_current_counter_or_insert_new_one_in_DATABASE(); 
} 

fclose($file); 

このlinkは私が(php.netのReadFileの記事を)解決するのに役立ちます。だから、それは多かれ少なかれ私のために働く。

関連する問題