救助:“/FileUpLoad”应用程序中的服务器错误。未将对象引用设置到对象的实例。
“/FileUpLoad”应用程序中的服务器错误。
--------------------------------------------
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
源错误:
行 57: StringBuilder strLabel=new StringBuilder();//显示上传信息的字符串
行 58:
行 59: strBrowserFileName=Path.GetFileName(File1.PostedFile.FileName);
行 60: strServerFileName=Path.GetDirectoryName(Server.MapPath( "WebForm1.aspx "))+ "\\ "+strBrowserFileName;
行 61: File1.PostedFile.SaveAs(strServerFileName);
源文件: f:\web\fileupload\webform1.aspx.cs 行: 59
堆栈跟踪:
[NullReferenceException: 未将对象引用设置到对象的实例。]
FileUpLoad.WebForm1.Button1_Click(Object sender, EventArgs e) in f:\web\fileupload\webform1.aspx.cs:59
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
————————————————————————————————
以下是源程序
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
namespace FileUpLoad
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.HtmlControls.HtmlInputFile File1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.Button Button1;
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)
{
string strBrowserFileName;//客户端上传文件名
string strServerFileName;//上传文件需要保存在服务器上的完整文件名称
StringBuilder strLabel=new StringBuilder();//显示上传信息的字符串
strBrowserFileName=Path.GetFileName(File1.PostedFile.FileName);
strServerFileName=Path.GetDirectoryName(Server.MapPath( "WebForm1.aspx "))+ "\\ "+strBrowserFileName;
File1.PostedFile.SaveAs(strServerFileName);
//以下显示上传文件信息
strLabel.Append( "文件名称: ");
strLabel.Append(strBrowserFileName+ " <br> ");
strLabel.Append( "文件类型 ");
strLabel.Append(File1.PostedFile.ContentType+ " <br> ");
Label2.Text=strLabel.ToString();
}
}
}
[解决办法]
点按钮前你选文件了吗?
[解决办法]
有可能是没选文件,简单的小错;看看哪个值没取上``
[解决办法]
外面加上个if(File1.HasFile)判断