PDA

View Full Version : مبتدی: سوال در مورد Request



Sir-Programmer
چهارشنبه 08 آذر 1391, 22:49 عصر
سلام دوستان چند وقته دنبال راهی میگردم که با نمایش لینک یه عکس بتونی تو پیج فلان یه اطلاعاتی بگیری
مثلاً


Link Image : www.mysait.com/photo/1.gif
Page : www.mysait.com/Default.aspx
من میخوام وقتی کاربر عکس مورد نظر رو درخواست کرد بتونه عکس رو ببینه و مثلاً تو Default.aspx من یه Counter یا شمارنده گذاشتم که وقتی کسی عکس رو دید +1 به شمارنده اضافه شه کسی میتونه راهنماییم کنه
با تشکر .:قلب:

raziee
پنج شنبه 09 آذر 1391, 21:47 عصر
با سلام
شما تمام درخواست هایی که ارسال میشه رو میتونید توسط رویداد Application_BeginRequest بدست بیارید.
دسترسی به درخواست هایی که برای فایل های استاتیک هستند به ورژن دات نت نصب شده بر روی سرور و نوع App Pool بستگی داره.
اما راه کاری که میتونید همیشه (با هر ورژن دات نت و هر نوع APP POOL) داشته باشید اینه که به جای دادن لینک مستقیم به یک منبع استاتیک(مثل فایل های تصویر) از یک Handler استفاده کنید و بوسیله Handler مربوطه فایل استاتیکتون رو برای کاربر ارسال کنید(در این حالت میتونید از Client Cache و GZIP هم استفاده کنید)

Sir-Programmer
پنج شنبه 09 آذر 1391, 21:49 عصر
مرسی که جواب دادی من چون تازه کارم هنوز آشنایی کامل با asp.net ندارم میشه یه منبع یا کدی sample چیزی بزارید ممنون مرسی

raziee
پنج شنبه 09 آذر 1391, 22:10 عصر
در مورد HttpHandler و HttpModule جستجو کنید و اطلاعات کافی در موردشون رو بدست بیارید.
در انجمن مطالب بسیاری در این موضوعات موجود هست.

/// <summary>
/// Summary description for ImageHandler
/// </summary>
public class ImageHandler : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
int id = 0;

if (
context.Request.QueryString["id"] != null &&
int.TryParse(context.Request.QueryString["id"], out id))
{
// get image file path from db => for example
string imageFilePath = GetFilePath(id);

// increment visit image
IncrementVisit(id);

context.Response.WriteFile(imageFilePath);
context.Response.ContentType = "image/jpeg";
}
}

public bool IsReusable
{
get
{
return false;
}
}
}