Web新人求助,在html中如何隐藏图片的真实地址? 本帖最后由 eakey 于 2013-06-04 20:22:00 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public class ResponseImg : IHttpHandler { static readonly DateTime Refresh; static readonly DateTime Now; static ResponseImg() { Now = DateTime.Now; Refresh = Now.AddMonths(1); } public void ProcessRequest(HttpContext context) { if (!string.IsNullOrEmpty(context.Request.Headers["If-Modified-Since"])) { DateTime IfModifiedSince = DateTime.Parse(context.Request.Headers["If-Modified-Since"]); if (IfModifiedSince > Now) { context.Response.StatusCode = 304; return; } } //string folder = context.Request.QueryString["Folder"]; string filepath = context.Request.QueryString["FilePath"]; int width = int.Parse(context.Request.QueryString["Width"]); int height = int.Parse(context.Request.QueryString["Height"]); string hex = context.Request.QueryString["Hex"]; string path = context.Server.MapPath(string.Format("/Img/{0}", filepath)); byte[] bytes = ImageHelper.Reset(path, width, height); //System.Drawing.Image img = ImageHelper.Reset(bytes, width, height); context.Response.Headers["Last-Modified"] = Refresh.ToString(); //context.Response.Cache.SetExpires(DateTime.Now.Add(Refresh)); //context.Response.Cache.SetMaxAge(refresh); context.Response.Cache.SetCacheability(HttpCacheability.Public); context.Response.CacheControl = HttpCacheability.Public.ToString(); context.Response.Cache.SetValidUntilExpires(true); //context.Response.StatusCode = 304; //img.Save(context.Response.OutputStream, ImageHelper.GetImageFormat(path)); context.Response.ContentType = "image/" + hex; context.Response.BinaryWrite(bytes); } public bool IsReusable { get { return false; } } }我用UrlRewrite 然后压缩图片 这样就是生成40*40 360*360像素的图片......当然,你可以解密后,再获取正确的地址 再输出 真心不明白楼主所说的真实地址是什么,是指图片的URL,还是指图片在服务器上存放的位置,前者你再怎么编码都是没有意义的,总不至于不让浏览器明白吧,而后者也不复杂,就看图片在服务器上怎么存了,如果存在数据库里,带个ID出来,如果直接存在硬盘上,自己弄一套简单的规则稍做加密就可以了。 从数据库中取图片:Using ASHX files to retrieve DB imageshttp://www.developerfusion.com/code/5223/using-ashx-files-to-retrieve-db-images/ img src的时候加密。 访问图片页面的时候 解密。 然后输出图片. asp.net 服务器端控件和客户端控件的区别? 一个StringBuilder 的问题(求救 急) 急~~~asp.net中调用带参数但无返回值的存储过程 服务器按钮事件下显示“装载页面” 2.0怎么把后代码和HTM代码又搞到一起了>>>>> 100分求教高手:为什么SKIN页面中引用了外部的静态变量,每次打开SKIN文件时总提示: 一个不知如何解决的问题(高手帮忙) 小妹忙于实习和找工作,毕业设计一直没有时间来做,那位大哥帮个忙可以吗?100分奉送!!谢谢了!!! treeView控件页面问题.. 新手求助 - 链接数据库登陆验证问题 dropdownlist级联菜单问题
{
static readonly DateTime Refresh;
static readonly DateTime Now;
static ResponseImg()
{
Now = DateTime.Now;
Refresh = Now.AddMonths(1);
} public void ProcessRequest(HttpContext context)
{ if (!string.IsNullOrEmpty(context.Request.Headers["If-Modified-Since"]))
{
DateTime IfModifiedSince = DateTime.Parse(context.Request.Headers["If-Modified-Since"]);
if (IfModifiedSince > Now)
{
context.Response.StatusCode = 304;
return;
}
}
//string folder = context.Request.QueryString["Folder"];
string filepath = context.Request.QueryString["FilePath"];
int width = int.Parse(context.Request.QueryString["Width"]);
int height = int.Parse(context.Request.QueryString["Height"]);
string hex = context.Request.QueryString["Hex"]; string path = context.Server.MapPath(string.Format("/Img/{0}", filepath)); byte[] bytes = ImageHelper.Reset(path, width, height);
//System.Drawing.Image img = ImageHelper.Reset(bytes, width, height); context.Response.Headers["Last-Modified"] = Refresh.ToString();
//context.Response.Cache.SetExpires(DateTime.Now.Add(Refresh));
//context.Response.Cache.SetMaxAge(refresh);
context.Response.Cache.SetCacheability(HttpCacheability.Public);
context.Response.CacheControl = HttpCacheability.Public.ToString();
context.Response.Cache.SetValidUntilExpires(true);
//context.Response.StatusCode = 304;
//img.Save(context.Response.OutputStream, ImageHelper.GetImageFormat(path));
context.Response.ContentType = "image/" + hex;
context.Response.BinaryWrite(bytes); } public bool IsReusable
{
get
{
return false;
}
}
}
我用UrlRewrite 然后压缩图片 这样就是生成40*40 360*360像素的图片......
当然,你可以解密后,再获取正确的地址 再输出
Using ASHX files to retrieve DB images
http://www.developerfusion.com/code/5223/using-ashx-files-to-retrieve-db-images/