刚刚学了两个月,做了一个信息公告的添加页面,图片上传总是出问题,请各位高手求救。
源代码:
public class add_xnxi02 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox content;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Button Button2;
protected System.Web.UI.WebControls.TextBox dtime;
protected System.Web.UI.HtmlControls.HtmlInputFile File1 ;

public SqlConnection myconn;
public SqlDataReader dr;
public string title1;
public string dtime1;
public string content1;
protected System.Web.UI.WebControls.TextBox title;
public string photopath1;
    string  nophoto;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面 } #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion private void Button1_Click(object sender, System.EventArgs e)
{
title1=title.Text;
content1=content.Text;
dtime1=dtime.Text;
if(File1.PostedFile.ContentLength!=0)
{
photopath1=File1.PostedFile.FileName;
}
else
{
photopath1=nophoto;
}
            ADD ADDDBO=new ADD();
myconn=ADDDBO.Open();
    ADD SP_addxinxi=new ADD();
    SP_addxinxi.addxinxi(title1,dtime1,content1,photopath1);
Page.Response.Redirect("html/ 添加成功.htm");

       }
}
错误信息:
未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 70:  content1=content.Text;
行 71:  dtime1=dtime.Text;
行 72:  if(File1.PostedFile.ContentLength!=0)
行 73:  {
行 74:  photopath1=File1.PostedFile.FileName;
 源文件: d:\项目管理\admin\add_xnxi02.aspx.cs    行: 72 

解决方案 »

  1.   

    把if(File1.PostedFile.ContentLength!=0)
    {
    photopath1=File1.PostedFile.FileName;
    }
    改成:
      if (File1.PostedFile!=null && File1.PostedFile.fileName.Length>0)
      { 
         photopath1=File1.Value;
       }
      

  2.   

    还是不对:-<
    错误:
    未将对象引用设置到对象的实例。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
    行 70:  content1=content.Text;
    行 71:  dtime1=dtime.Text;
    行 72:  if (File1.PostedFile!=null && File1.PostedFile.FileName.Length>0)
    行 73:             {
    行 74:  photopath1=File1.Value;
     源文件: d:\项目管理\admin\add_xnxi02.aspx.cs    行: 72 
      

  3.   

    行 72:  if (File1.PostedFile!=null && File1.PostedFile.FileName.Length>0)
      

  4.   

    好像是FileField 那个控件没有感应出来
    但是我已经定义了:
    protected System.Web.UI.HtmlControls.HtmlInputFile File1 ;
      

  5.   

    在托这个控件的时候protected System.Web.UI.HtmlControls.HtmlInputFile File1 ;没有自动生成,是我自己加的
    不知道怎么回事:-<
      

  6.   

    那问题不就出在这里了?要不把你自己加上的那行:protected System.Web.UI.HtmlControls.HtmlInputFile File1 ;
    改成:protected System.Web.UI.HtmlControls.HtmlInputFile File1 =new HtmlInputFile()试试
      

  7.   

    错是不错了
    但是我加进去的图片的photopath都是“nophoto”
    :-<