protected void Page_Load(object sender, EventArgs e)
{
string imgPath = string.IsNullOrEmpty(Request["imgPath"]) ? "" : Request["imgPath"].ToString();
Response.ContentType = "image/jpeg";
DateTime contentModified = System.IO.File.GetLastWriteTime(imgPath);
if (IsClientCached(contentModified))
{
Response.StatusCode = 304;
Response.SuppressContent = true;
}
else
{
Thumbnail.GenerateHighThumbnail(imgPath, 80, 80); //这里是生成缩略图的代码,网上到处都是,这里就不展现了。
Response.Cache.SetETagFromFileDependencies();
Response.Cache.SetAllowResponseInBrowserHistory(true);
Response.Cache.SetLastModified(contentModified);
}
}
private bool IsClientCached(DateTime contentModified)
{
string header = Request.Headers["If-Modified-Since"];
if (header != null)
{
DateTime isModifiedSince;
if (DateTime.TryParse(header, out isModifiedSince))
{
return isModifiedSince >= DateTime.Parse(contentModified.ToString());
}
}
return false;
}