روش اول.
شما بايد يه DataBase درست كنين و آدرس نسبي فايل هايي كه ميخواهين واسه دانلود بگذارين رو به همراه يك آيدي توي اون وارد كنين.بعد يك صفحه ي دانلود درست كنين مثلا download.asp?id=ID .يعني شما به جاي لينك دادن به فايل اصلي به اين فايل لينك ميدين و بجاي ID هم همون آيديي كه توي ديتا بيس وارد كردين رو بگذارين.توي فايل Download.asp با توجه به آيدي آدرس فايل رو پيدا كنين و اون فايل رو بخوني و به صورت خروجي بدي بيرون در حين اين كار به يك ركورد توي ديتا بيس 1 واحد اضافه كني يعني فايل 1 بار دانلود شده.تو اين روش هيچ Redirect ي در كار نيست و فايل دقيقا از آدرس download.asp?id=ID دانلود ميشه و كسي كه دانلود ميكنه نميتونه آدرس اصلي رو بفهمه.
روش دوم :
آدرس نسبي رو به عنوان يك query به فايل download.asp بدي.مثلا download.asp?file=/com/setup.exe
بعد توي فايل دانلود به يك ركورد توي ديتا بيس 1 واحد اضافه كني و بعد صفحه رو Redirect كني توي آدرست اصلي :
کد:
Response.Redirect Request.QueryString("file")
روش سوم:
اين روش ها به ذهن من رسيد شايد روش راحتتري هم باشه
--
در ضمن اگه كسي كه دانلود ميكنه وسط كار دانلود رو قطع كنه مسالما برنامه متوجه نميشه و يك واحد به تعداد دانلود ها اضافه ميشه...