网页 发布到 服务器后 验证码 不显示 验证码是 图片流 直接画出来的.在login界面 引用的地方在本机调试的时候没问题,传到服务器上后 就看不到了,一个小红点"ValidateCode.aspx 和 cs文件都传到虚拟目录下 也不行....求救字体也已经在服务器上安装了,服务器是server2003 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ValidateCode.aspx和 login.aspx 都在一个目录下啊 是不是windows服务器IIS没有开启父路径? 我来告诉你 有一个服务没有开 我记得好像是 ASP.NET STATE还有一个可能就是 在配置服务器里面 勾选 启动父路径 恩 asp.net 账户 权限设成完全控制了 还是不行 父路径打钩了 asp.net 状态服务 也开启了.......还是不行 是虚拟目录要采用同级目录下的文件路径“/ValidataCode.aspx",根目录不需要考虑到这个可以采用“~/ValidataCode.aspx",这样来试试 看看你的项目路径 是否 给了 这个路径权限。 有时候 有人会把 验证码这个东西 写到 后台管理路径。而前台又去用它 导致的。 你可以在 Web.Config 里面 给下权限。看看。 ValidataCode.aspx 文件是否在你根目录下?不在的话 你的 img src=""引用地址就没写对 加个绝对路径试试 加了 在本机没有问题 在服务器上还是看不到.....我设置了宽度 加了 ruanat 变服务器控件 还是不行 你这个 把图片转化为流的 形式不对 少了一部分流 重新写个 转换刘的方法吧 FileStream fs = File.OpenRead(txtImagePath.Text); byte[] imageb = new byte[fs.Length]; fs.Read(imageb, 0, imageb.Length); fs.Close(); 我就是这啊我昨天 发布的网页但是今天去不能显示了在IIS中浏览的时候。。我开始是利用的内存流保存验证图片。但是,最后想了想,如果要用的话也应该是服务器的啊,但是客户机是采用自己的 ...。打给吧我给你我刚才解决的代码:: //--清除缓冲区所有 内荣 Response.ClearContent(); //--设置输出流的MINI 类型 Response.ContentType = "image/png"; //--将2进制图像流写入到 二级制中 gv_gps.Dispose(); gv_bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); Response.End(); 在附上 我的验证码,方法,通过设置不同的参数可以实现不能的效果,此页面 是一个验证码图片::using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Drawing;using System.Drawing.Imaging;using System.Drawing.Text;public partial class VaryCode : System.Web.UI.Page{ //--绘图主题 //gv =全局变量 tv =临时变量 med =方法 //---------------要使用的变量和类型 /// <summary> /// 随记生成 四位 /// </summary> Random gv_rand; /// <summary> /// 定义画笔数组 /// </summary> Brush[] gv_brush = { Brushes.Aqua, Brushes.Black, Brushes.Red, Brushes.Green, Brushes.Pink, Brushes.Yellow, Brushes.PaleGreen, Brushes.Blue }; /// <summary> /// 创建2个画笔对象 第一个 为倾斜,第二个为中间有横线穿过 /// </summary> Font[] gv_font = { new Font(new FontFamily(GenericFontFamilies.SansSerif), 15, FontStyle.Italic), new Font(new FontFamily(GenericFontFamilies.Monospace), 15, FontStyle.Strikeout) }; /// <summary> /// 指定画板 /// </summary> Graphics gv_gps; /// <summary> /// 要承载 验证码的位图 /// </summary> Bitmap gv_bmp; /// <summary> /// 静态值用于进行画笔的随机选择 /// </summary> static int rnum = 0; //--------------------------------------------定义方法区 /// <summary> /// 返回 随记生成的 N 位数的 字符串形式, /// </summary> /// <param name="digit">指定的位数</param> /// <returns>返回字符串</returns> public string med_recRandnum(int digit) { if (digit >= 3 && digit <= 8) { //--根据位数获取最大值和最小值 //如制定了 5 位,那么最小值为 10000,最大值为 99999 double minnum = Math.Pow(10, digit - 1); double maxnum = Math.Pow(10, digit) - 1; gv_rand = new Random((int)DateTime.Now.Ticks); int recnum = gv_rand.Next((int)minnum, (int)maxnum); //--返回字符数组 return recnum.ToString(); } else return null; } string strvalue; /// <summary> /// 绘制数字验证码 /// </summary> /// <param name="digit">指定绘制的数字的位数</param> /// <param name="pic_width">指定验证码的宽度 参考值: 6位数字80</param> /// <param name="pic_height">指定验证码高度 参考值: 6位数30</param> /// <param name="bgcolor">指定验证码图片的背景颜色 参考值:Color.Plum </param> /// <param name="split_width">指定验证码图片的竖型干扰条码间隔 参考值:2</param> /// <param name="split_color">指定验证码图片的竖型干扰码颜色 参考值 :Color.Black</param> /// <param name="word_split">指定个个验证码数字之间的宽度 参考值:13</param> /// <param name="thevalue">返回的out型参数,返回验证码的实际值</param> /// <returns name="MemoryStream">将验证码图片写入到内存流中</returns> public void med_drawVerifyCode(int digit, int pic_width, int pic_height, Color bgcolor, int split_width, Color split_color, int word_split, out string thevalue) { //得到 随机值 string numbs = med_recRandnum(digit); if (numbs != null) { gv_bmp = new Bitmap(pic_width, pic_height); gv_gps = Graphics.FromImage(gv_bmp); //用背景色填充 gv_gps.Clear(bgcolor); //绘制干扰色 for (int i = 0; i < pic_width; i += split_width) { for (int j = 0; j < pic_height; j++) gv_bmp.SetPixel(i, j, split_color); } //--绘制我们的数值 for (int i = 0; i < digit; i++) { gv_gps.DrawString(numbs[i].ToString(), gv_font[i % 2], gv_brush[(rnum++) % 8], i * word_split, Math.Abs(i - 3)); } Session["vcode"] = strvalue; //--清除缓冲区所有 内荣 Response.ClearContent(); //--设置输出流的MINI 类型 Response.ContentType = "image/png"; //--将2进制图像流写入到 二级制中 gv_gps.Dispose(); gv_bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); Response.End(); thevalue = numbs; } else { //---错误,在3-8位之间 thevalue = "noexit"; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //System.IO.MemoryStream ms = vcode.med_drawVerifyCode(4, 60, 30, Color.Plum, 6, Color.Black, 10, out strvalue); // string strvalue; //Session["vcode"] = strvalue; ////--清除缓冲区所有 内荣 //Response.ClearContent(); ////--设置输出流的MINI 类型 //Response.ContentType = "image/png"; ////--将2进制图像流写入到 二级制中 //Response.BinaryWrite(ms.ToArray()); //Response.End(); string strvalue; med_drawVerifyCode(4, 60, 30, Color.Plum, 6, Color.Black, 10, out strvalue); } }} 这是一个用asp.net编写的登录界面,各位大虾帮我看看是哪出问题了? .net抓取网站内容插入自己的数据库中 请高手帮忙解决一个技术问题 ExecuteReader 得 不到数据 GridView很简单很莫名的问题 点击导出文件事件后整个系统无法使用 在VS2003中,开发自定义Web控件时怎么才能将图片,htm等文件包含在控件中??? asp.net评教问题 如何写程序读取打卡机、考勤机的程序? 显示html内容 如果实现:页面关闭时验证是否本机已把该站点加入收藏,如无则弹出加入收藏框 Checkbox的数量检测
ValidateCode.aspx和 login.aspx 都在一个目录下啊
还有一个可能就是 在配置服务器里面 勾选 启动父路径
恩 asp.net 账户 权限设成完全控制了 还是不行
父路径打钩了 asp.net 状态服务 也开启了.......还是不行
加了 在本机没有问题 在服务器上还是看不到.....我设置了宽度 加了 ruanat 变服务器控件 还是不行
byte[] imageb = new byte[fs.Length];
fs.Read(imageb, 0, imageb.Length);
fs.Close();
我昨天 发布的网页但是今天去不能显示了在IIS中浏览的时候。。
我开始是利用的内存流保存验证图片。
但是,最后想了想,如果要用的话也应该是服务器的啊,但是客户机是采用自己的 ...。打给吧
我给你我刚才解决的代码::
//--清除缓冲区所有 内荣
Response.ClearContent();
//--设置输出流的MINI 类型
Response.ContentType = "image/png";
//--将2进制图像流写入到 二级制中
gv_gps.Dispose();
gv_bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Response.End();
通过设置不同的参数可以实现不能的效果,
此页面 是一个验证码图片::using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Text;
public partial class VaryCode : System.Web.UI.Page
{
//--绘图主题
//gv =全局变量 tv =临时变量 med =方法 //---------------要使用的变量和类型
/// <summary>
/// 随记生成 四位
/// </summary>
Random gv_rand;
/// <summary>
/// 定义画笔数组
/// </summary>
Brush[] gv_brush = { Brushes.Aqua, Brushes.Black, Brushes.Red, Brushes.Green, Brushes.Pink, Brushes.Yellow, Brushes.PaleGreen, Brushes.Blue };
/// <summary>
/// 创建2个画笔对象 第一个 为倾斜,第二个为中间有横线穿过
/// </summary>
Font[] gv_font = { new Font(new FontFamily(GenericFontFamilies.SansSerif), 15, FontStyle.Italic), new Font(new FontFamily(GenericFontFamilies.Monospace), 15, FontStyle.Strikeout) }; /// <summary>
/// 指定画板
/// </summary>
Graphics gv_gps;
/// <summary>
/// 要承载 验证码的位图
/// </summary>
Bitmap gv_bmp;
/// <summary>
/// 静态值用于进行画笔的随机选择
/// </summary>
static int rnum = 0; //--------------------------------------------定义方法区
/// <summary>
/// 返回 随记生成的 N 位数的 字符串形式,
/// </summary>
/// <param name="digit">指定的位数</param>
/// <returns>返回字符串</returns>
public string med_recRandnum(int digit)
{
if (digit >= 3 && digit <= 8)
{
//--根据位数获取最大值和最小值
//如制定了 5 位,那么最小值为 10000,最大值为 99999 double minnum = Math.Pow(10, digit - 1);
double maxnum = Math.Pow(10, digit) - 1;
gv_rand = new Random((int)DateTime.Now.Ticks); int recnum = gv_rand.Next((int)minnum, (int)maxnum);
//--返回字符数组
return recnum.ToString();
}
else
return null;
}
string strvalue;
/// <summary>
/// 绘制数字验证码
/// </summary>
/// <param name="digit">指定绘制的数字的位数</param>
/// <param name="pic_width">指定验证码的宽度 参考值: 6位数字80</param>
/// <param name="pic_height">指定验证码高度 参考值: 6位数30</param>
/// <param name="bgcolor">指定验证码图片的背景颜色 参考值:Color.Plum </param>
/// <param name="split_width">指定验证码图片的竖型干扰条码间隔 参考值:2</param>
/// <param name="split_color">指定验证码图片的竖型干扰码颜色 参考值 :Color.Black</param>
/// <param name="word_split">指定个个验证码数字之间的宽度 参考值:13</param>
/// <param name="thevalue">返回的out型参数,返回验证码的实际值</param>
/// <returns name="MemoryStream">将验证码图片写入到内存流中</returns>
public void med_drawVerifyCode(int digit, int pic_width, int pic_height, Color bgcolor, int split_width, Color split_color, int word_split, out string thevalue)
{
//得到 随机值
string numbs = med_recRandnum(digit);
if (numbs != null)
{
gv_bmp = new Bitmap(pic_width, pic_height);
gv_gps = Graphics.FromImage(gv_bmp);
//用背景色填充
gv_gps.Clear(bgcolor);
//绘制干扰色
for (int i = 0; i < pic_width; i += split_width)
{
for (int j = 0; j < pic_height; j++) gv_bmp.SetPixel(i, j, split_color);
}
//--绘制我们的数值
for (int i = 0; i < digit; i++)
{ gv_gps.DrawString(numbs[i].ToString(), gv_font[i % 2], gv_brush[(rnum++) % 8], i * word_split, Math.Abs(i - 3));
}
Session["vcode"] = strvalue;
//--清除缓冲区所有 内荣
Response.ClearContent();
//--设置输出流的MINI 类型
Response.ContentType = "image/png";
//--将2进制图像流写入到 二级制中
gv_gps.Dispose();
gv_bmp.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
Response.End();
thevalue = numbs;
}
else
{ //---错误,在3-8位之间
thevalue = "noexit";
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//System.IO.MemoryStream ms = vcode.med_drawVerifyCode(4, 60, 30, Color.Plum, 6, Color.Black, 10, out strvalue);
// string strvalue;
//Session["vcode"] = strvalue;
////--清除缓冲区所有 内荣
//Response.ClearContent();
////--设置输出流的MINI 类型
//Response.ContentType = "image/png";
////--将2进制图像流写入到 二级制中
//Response.BinaryWrite(ms.ToArray()); //Response.End();
string strvalue; med_drawVerifyCode(4, 60, 30, Color.Plum, 6, Color.Black, 10, out strvalue); }
}
}