图片防盗

 

 1     public class ProtectImgHandler:IHttpHandler

 2     {

 3         public bool IsReusable

 4         {

 5             get { return false; }

 6         }

 7 

 8         public void ProcessRequest(HttpContext context)

 9         {

10             context.Request.ContentType = "image/JPEG";

11             // 获取文件服务器端物理路径

12             string FileName = context.Server.MapPath(context.Request.FilePath);

13             // 如果UrlReferrer为空,则显示一张默认的禁止的防盗链图片

14             if (context.Request.UrlReferrer.Host == null)

15             {

16                 context.Response.WriteFile("~/img/error.jpg");

17             }

18             else {

19                 // 如果UrlReferrer不包含自己站点主机域名,则显示一张默认的禁止的防盗链图片

20                 if (context.Request.UrlReferrer.Host.IndexOf("localhost") > -1)

21                 {

22                     context.Response.WriteFile(FileName);

23                 }

24                 else {

25                     context.Response.WriteFile("~/img/error.jpg");

26                 }

27             }

28         }

29 

30             // 最后在配置文件Web.config中写

31       <httpHandlers>

32          <add verb="*" path="*.jpg" type="Picture.ProtectImgHandler"/>

33      </httpHandlers>

 

你可能感兴趣的:(图片)