mvc实现图片验证码功能
mvc中实现图片验证码很简单,只需要创建一个FileContentResult的方法,返回file就行
//////创建一个文件方法 /// ///publicFileContentResultGetCode(){ //参数一:产生几个字符的验证码图片参数二:验证码的形式(数字、字母、数字字母混合都有) ValidateCodevalidCode=newValidateCode(5,ValidateCode.CodeType.Alphas); //将图片转换为二进制 MemoryStreamms=validCode.CreateCheckCodeImage()asMemoryStream; dateCode=validCode.CheckCode;//通过CheckCode获取当前的验证码 byte[]buffurPic=ms.ToArray(); returnFile(buffurPic,"image/jpeg"); }
以下是生成验证码代码:
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; usingSystem.Drawing; usingSystem.Drawing.Drawing2D; usingSystem.IO; namespaceHelper { publicclassValidateCode { #regionPrivateFields privateconstdoublePI=3.1415926535897932384626433832795; privateconstdoublePI2=6.283185307179586476925286766559; //privatereadonlyint_wordsLen=4; privateint_len; privateCodeType_codetype; privatereadonlySingle_jianju=(float)18.0; privatereadonlySingle_height=(float)24.0; privatestring_checkCode; #endregion #regionPublicProperty publicstringCheckCode { get { return_checkCode; } } #endregion #regionConstructors /// ///publicconstructors /// ///验证码长度 ///验证码类型:字母、数字、字母+数字 publicValidateCode(intlen,CodeTypectype) { this._len=len; this._codetype=ctype; } #endregion #regionPublicField publicenumCodeType{Words,Numbers,Characters,Alphas} #endregion #regionPrivateMethods publicstringGenerateNumbers() { stringstrOut=""; System.Randomrandom=newRandom(); for(inti=0;i<_len;i++) { stringnum=Convert.ToString(random.Next(10000)%10); strOut+=num; } returnstrOut.Trim(); } publicstringGenerateCharacters() { stringstrOut=""; System.Randomrandom=newRandom(); for(inti=0;i<_len;i++) { stringnum=Convert.ToString((char)(65+random.Next(10000)%26)); strOut+=num; } returnstrOut.Trim(); } // publicstringGenerateAlphas() { stringstrOut=""; stringnum=""; System.Randomrandom=newRandom(); for(inti=0;i<_len;i++) { if(random.Next(500)%2==0) { num=Convert.ToString(random.Next(10000)%10); } else { num=Convert.ToString((char)(65+random.Next(10000)%26)); } strOut+=num; } returnstrOut.Trim(); } privateSystem.Drawing.BitmapTwistImage(BitmapsrcBmp,boolbXDir,doubledMultValue,doubledPhase) { System.Drawing.BitmapdestBmp=newBitmap(srcBmp.Width,srcBmp.Height); //将位图背景填充为白色 System.Drawing.Graphicsgraph=System.Drawing.Graphics.FromImage(destBmp); graph.FillRectangle(newSolidBrush(System.Drawing.Color.White),0,0,destBmp.Width,destBmp.Height); graph.Dispose(); doubledBaseAxisLen=bXDir?(double)destBmp.Height:(double)destBmp.Width; for(inti=0;i=0&&nOldX =0&&nOldY 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。