你调用的对象是空的

时间:2009-12-03 05:07:36

标签: asp.net

我一直收到以下错误,我不知道如何修复它。任何帮助都会很棒

异常详细信息:用户代码未处理NullReferenceException:对象引用未设置为对象的实例。

protected void LbUpload_Click(object sender, EventArgs e)
    {     
      ERROR: if(FileUpload.PostedFile.FileName == string.Empty)
        {

            LabelMsg.Visible = true;
            return;
        }
        else
    {
        string[] FileExt = FileUpload.FileName.Split('.');
        string FileEx = FileExt[FileExt.Length - 1];
        if (FileEx.ToLower() == "csv")
        {
            FileUpload.SaveAs(Server.MapPath("CSVLoad//" + FileUpload.FileName));
        }
        else
        {
            LabelMsg.Visible = true;
            return;
        }
    }
    CSVReader reader = new CSVReader(FileUpload.PostedFile.InputStream);
    string[] headers = reader.GetCSVLine();
    DataTable dt = new DataTable();
    foreach (string strHeader in headers)
    dt.Columns.Add(strHeader);
    string[] data;
    while ((data = reader.GetCSVLine()) != null)
    dt.Rows.Add(data);
    GridView1.DataSource = dt;
    GridView1.DataBind();
    if (FileUpload.HasFile)
        try
        {
            FileUpload.SaveAs(Server.MapPath("confirm//") +
            FileUpload.FileName);
            LabelGrid.Text = "File name: " +
            FileUpload.PostedFile.FileName + "<br>" +
            FileUpload.PostedFile.ContentLength + " kb<br>" +
            "Content type: " +
            FileUpload.PostedFile.ContentType + "<br><b>Uploaded Successfully";
        }
        catch (Exception ex)
        {
            LabelGrid.Text = "ERROR: " + ex.Message.ToString();

        }
    else
    {
        LabelGrid.Text = "You have not specified a file.";
    }
    File.Delete(Server.MapPath("confirm//" + FileUpload.FileName));
}

3 个答案:

答案 0 :(得分:1)

您正在检查FileName是否为string.Empty,听起来您想要检测用户何时单击该按钮而未选择文件。

如果发生这种情况,实际的PostedFile属性将为null(请记住,用户未发布文件),您应该使用FileUpload.HasFile属性来实现此目的:< / p>

protected void LbUpload_Click(object sender, EventArgs e)
{     
    if(FileUpload.HasFile)
    {

        LabelMsg.Visible = true;
        return;
    } 
    // ...
}

但我建议您添加RequiredFieldValidator

有关验证的更多信息:

答案 1 :(得分:0)

您确定FileUpload和FileUpload.PostedFile不为空吗?

答案 2 :(得分:0)

FileUpload或其PostedFile属性必须为空。

相关问题