2011-06-22 11 views
1

ユーザーがダウンロードまたはビューのハイパーリンクをクリックしたかどうかを検出します。これは、人々がファイルをアップロードすることができ、必要に応じてファイルを見ることができるページです(他の人がアップロードしたファイル)。 asp.NETを使用してファイルをアップロードし、SQL Serverデータベースに格納しています。これらのファイルは、データベースを使用してWebページに表示され、ログインしたすべての人が見ることができます。Webページに複数のファイルがあり、すべてが閲覧またはダウンロードリンクを持っています(zipファイルなどのファイルには閲覧できません)。ファイルをアップロードしたユーザーが自分のファイルを見たユーザーを確認できるようにする機能を作成したいと考えています。データベース内の列に追加されるファイルを見ているすべての人とファイル名のテーブルの列のようなもの。 これは私がGridViewの中で使用していますものです:ユーザーがファイルをダウンロードしたかどうかを検出する

<asp:HyperLinkField DataNavigateUrlFields="Id" DataNavigateUrlFormatString="~/DownloadFile.aspx?Id={0}" HeaderText="Download" Text="Download" /> 

答えて

3

あなただけのファイルを提供する前に、データベースにクリックを記録し、サーバー側コンポーネントにアクセスしてください何でも/あなたのダウンロード/ビュー/リンクを持っている必要があります。ボタンコードのHTML部分の使用この中

+0

これは、ユーザーが返した場合に対処するためにはるかに信頼性の高い方法であります同じページを複数回さもなければ、Ahmad-Sanのjscript関数は一度の訪問のために働くでしょう。 –

+0

ユーザーが既にそのボタンをクリックした場合に時刻を更新するSQLクエリを書きました。 – reddevil

0

<button type="button" onClick="check_download();"> Click Me </button> 

、スクリプトの一部にこの機能を追加

var downloaded = false; 
function check_download() { 
    if (downloaded == true) { 
     alert('You have already downloaded this file.'); 
     return false; 
    } else { 
     downloaded = true; 
     document.location.href = 'http://Your.File.ToBe.Downloaded.URL'; 
     return true; 
    } 
} 
+0

ユーザーは、ファイルを複数回クリックしてダウンロードできます。 – reddevil

+0

コードを更新し、(ダウンロードした)変数を宣言する行を追加し、デフォルトとしてfalseに設定しました。 – Ahmad

関連する問題