ASP.NET读取网络或本地图片显示(转)
写这个的缘由是在CSDN看到的两个问题:
1、抓取网络图片,不在本地保存而直接显示
2、在站点服务器上某个磁盘的文件里有图片,想能够在网站上显示出来,图片文件夹不在站点目录
一、读取网络图片
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </head> <body> <form id="form1" runat="server"> <div> <img src="Handler.ashx?url=http://www.google.com.hk/intl/zh-CN/images/logo_cn.png" mce_src="http://Handler.ashx?url=http://www.google.com.hk/intl/zh-CN/images/logo_cn.png" alt="google logo" /> </div> </form> </body> </html>
Handler.ashx
<%@ WebHandler Language="C#" Class="Handler" %> using System; using System.Web; using System.Net; using System.Drawing; using System.IO; public class Handler : IHttpHandler { public void ProcessRequest (HttpContext context) { string imgUrl = context.Request["Url"]; if (!string.IsNullOrEmpty(imgUrl)) { Uri myUri = new Uri(imgUrl); WebRequest webRequest = WebRequest.Create(myUri); WebResponse webResponse = webRequest.GetResponse(); Bitmap myImage = new Bitmap(webResponse.GetResponseStream()); MemoryStream ms = new MemoryStream(); myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); context.Response.ClearContent(); context.Response.ContentType = "image/Jpeg"; context.Response.BinaryWrite(ms.ToArray()); } } public bool IsReusable { get { return false; } } }
二、读取本地图片
读取本地文件,如:d:/1.jpg
<%@ WebHandler Language="C#" Class="Handler2" %> using System; using System.Web; using System.IO; using System.Drawing; public class Handler2 : IHttpHandler { public void ProcessRequest(HttpContext context) { string path = context.Request.QueryString["path"]; if (!string.IsNullOrEmpty(path)) { FileStream fs = new FileStream(@path, FileMode.Open, FileAccess.Read); Bitmap myImage = new Bitmap(fs); MemoryStream ms = new MemoryStream(); myImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); context.Response.ClearContent(); context.Response.ContentType = "image/Jpeg"; context.Response.BinaryWrite(ms.ToArray()); } } public bool IsReusable { get { return false; } } }

浙公网安备 33010602011771号