无刷新图片验证码
网上找了很多图片验证码的代码,但都是 单独的 一个函数。 如果要变化一下(有时看不清楚) 则要刷新整个。 如何做到无刷新呢???? 网上的很多代码 都是直接 生成图片,无返回值。 怎么通过ajax 异步获取??? 如以下代码就是一个简单的图片验证码生成函数,最终生成的是图片。没有返回值???? 能做到有返回值吗?private string generateCheckCode(int length)
{
char[] constant ={ '0','1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e','f','g','h','i','j','k','u','m','l','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',}; StringBuilder checkcodes = new StringBuilder(62);
Random rd = new Random();
for (int i = 0; i < length; i++)
{
checkcodes.Append(constant[rd.Next(62)]);
}
return checkcodes.ToString();
} //生成验证码图片
//方法一
private void validatecode(string code)
{
Bitmap img = null;
Graphics g = null;
MemoryStream ms = null; int gwidth = code.Length * 12;
img = new Bitmap(gwidth, 25);
g = Graphics.FromImage(img);
//背景颜色
g.Clear(Color.White);
Font f = new Font("Arial Black", 10); //文字字体
SolidBrush s = new SolidBrush(Color.Black); //文字颜色 g.DrawString(code, f, s,3,3);
ms = new MemoryStream();
img.Save(ms, ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType = "image/jpge";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
img.Dispose();
Response.End(); }
网上找了很多图片验证码的代码,但都是 单独的 一个函数。 如果要变化一下(有时看不清楚) 则要刷新整个。 如何做到无刷新呢???? 网上的很多代码 都是直接 生成图片,无返回值。 怎么通过ajax 异步获取??? 如以下代码就是一个简单的图片验证码生成函数,最终生成的是图片。没有返回值???? 能做到有返回值吗?private string generateCheckCode(int length)
{
char[] constant ={ '0','1', '2', '3', '4', '5', '6', '7', '8', '9',
'a', 'b', 'c', 'd', 'e','f','g','h','i','j','k','u','m','l','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',}; StringBuilder checkcodes = new StringBuilder(62);
Random rd = new Random();
for (int i = 0; i < length; i++)
{
checkcodes.Append(constant[rd.Next(62)]);
}
return checkcodes.ToString();
} //生成验证码图片
//方法一
private void validatecode(string code)
{
Bitmap img = null;
Graphics g = null;
MemoryStream ms = null; int gwidth = code.Length * 12;
img = new Bitmap(gwidth, 25);
g = Graphics.FromImage(img);
//背景颜色
g.Clear(Color.White);
Font f = new Font("Arial Black", 10); //文字字体
SolidBrush s = new SolidBrush(Color.Black); //文字颜色 g.DrawString(code, f, s,3,3);
ms = new MemoryStream();
img.Save(ms, ImageFormat.Jpeg);
Response.ClearContent();
Response.ContentType = "image/jpge";
Response.BinaryWrite(ms.ToArray());
g.Dispose();
img.Dispose();
Response.End(); }
假设你的验证码图片的地址为scode.aspx,则可以在页面中插入
<img alt="点击图片刷新验证码" src="scode.aspx" onclick="this.src='scode.aspx?r=' + Math.random()" />
刷新验证码就可以不用刷新整个页面了.