通过一些方法已经生成了图片验证码,现在要把图片验证码输入到客户端了,代码如下:public void OutPutValidateImage(Image image)
{
MemoryStream ms = new MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
System.Web.HttpResponse response = new HttpResponse(new StringWriter());
response.Clear();
response.ContentType = "image/Gif";
response.BinaryWrite(ms.ToArray());
}问题来了:
当使用自定义 TextWriter 时,OutputStream 不可用。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 当使用自定义 TextWriter 时,OutputStream 不可用。源错误:
行 104: res.Clear();
行 105: res.ContentType = "image/Gif";
行 106: res.BinaryWrite(ms.ToArray());//这句为红色
行 107: }
行 108:}
如何如何改正???
另外,
把验证字符串放到Session["ranTxt"]里面,再拿用户输入的验证码和Session["ranTxt"]进行比较,这样好吗?
{
MemoryStream ms = new MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
System.Web.HttpResponse response = new HttpResponse(new StringWriter());
response.Clear();
response.ContentType = "image/Gif";
response.BinaryWrite(ms.ToArray());
}问题来了:
当使用自定义 TextWriter 时,OutputStream 不可用。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: 当使用自定义 TextWriter 时,OutputStream 不可用。源错误:
行 104: res.Clear();
行 105: res.ContentType = "image/Gif";
行 106: res.BinaryWrite(ms.ToArray());//这句为红色
行 107: }
行 108:}
如何如何改正???
另外,
把验证字符串放到Session["ranTxt"]里面,再拿用户输入的验证码和Session["ranTxt"]进行比较,这样好吗?
http://www.cnblogs.com/insus/articles/1425377.html
public void OutPutValidateImage(Image image)
{
MemoryStream ms = new MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
Response.Clear();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
}
public void OutPutValidateImage(Image image, HttpResponse response)
{
MemoryStream ms = new MemoryStream();
image.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
response.Clear();
response.ContentType = "image/Gif";
response.BinaryWrite(ms.ToArray());
}
在页面调用的地方
OutPutValidateImage(image,Response)总之,应当使用页面相关的那个Response来写入数据