我有一个HTTP处理程序,它将图像发送到客户端(在回发期间):
public class ImageHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
Byte[] pic = GetPhoto(Convert.ToInt32(context.Request.QueryString["userID"]));
if (pic != null)
{
context.Response.ContentType = "image/jpeg";
context.Response.OutputStream.Write(pic, 0, pic.Length);
}
else
{
context.Response.ContentType = "image/png";
context.Response.WriteFile("/AllImages/DefaultPicture_large.png");
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
如何使用此处理程序通过jQuery ajax请求将图像发送到客户端?
几个问题: 1)如何将图像转换为JSON? 2)如果无法将图像转换为JSON,我可以使用哪种格式将图像发送到客户端?
Tnx很多!
答案 0 :(得分:3)
您只是想在页面上显示它吗?为什么不写一个img标签,src指向你的处理程序?
类似的东西:
var img_url = '/myImageHandler.ashx?userDI=' + some_user_id;
$("#displayArea").append($("<img src='" + img_url + "' alt='user image' />"));
答案 1 :(得分:3)
1)要将图像作为JSON发送,您需要将其转换为base64编码的字符串:
string imageString = Convert.ToBase64String(pic);
return imageString;
2)但是,并非所有浏览器(IE&lt; 8)都支持您需要用来显示这些base64编码图像的data-uri方案。
最好的方法是编写img
标记,src
指向httpHandler。