读书人

救助:“/FileUpLoad”应用程序中的服

发布时间: 2011-12-22 23:36:25 作者: rapoo

救助:“/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();

}
}


[解决办法]
up
[解决办法]
string str = Server.MapPath( ". ") + "\\source\\ " + Path.GetFileName(myUpLoad.PostedFile.FileName); ;
if (myUpLoad.HasFile == true)
{
if (File.Exists(str) == false)
try
{
myUpLoad.SaveAs(str);
}
catch (Exception es)
{
lblInfo.Text = es.Message;
}
else lblInfo.Text = "File already exists. ";
}

例程给出来,经过测试应该没问题,参考一下吧。

读书人网 >C#

热点推荐