C# System.IO.Path.GetExtension在ASP.NET中返回null

C# System.IO.Path.GetExtension在ASP.NET中返回null,c#,asp.net,nullreferenceexception,C#,Asp.net,Nullreferenceexception,我的页面中有一个文件上载,因此用户可以浏览计算机并选择文件。选择文件后,当我想使用以下代码获取文件名时: string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName); 它返回null,我得到了以下错误: Object reference not set to an instance of an object. <asp:UpdatePanel runat="server" ID="UpdatePan

我的页面中有一个文件上载,因此用户可以浏览计算机并选择文件。选择文件后,当我想使用以下代码获取文件名时:

string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);
它返回null,我得到了以下错误:

Object reference not set to an instance of an object.
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Always">
        <ContentTemplate>
<div class="wrapper-box">
                                <div class="topbox">
                                    عکس خبر
                                </div>
                                 <asp:FileUpload ID="FileUpload1" runat="server" CssClass="text-input-two" />
                            </div>


        </ContentTemplate>
    </asp:UpdatePanel>
在调试之后,我发现我的文件是空的,它没有发送。为什么?添加了一点代码后,我出现了以下错误:

Object reference not set to an instance of an object.
<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Always">
        <ContentTemplate>
<div class="wrapper-box">
                                <div class="topbox">
                                    عکس خبر
                                </div>
                                 <asp:FileUpload ID="FileUpload1" runat="server" CssClass="text-input-two" />
                            </div>


        </ContentTemplate>
    </asp:UpdatePanel>

عکس خبر

根据MSDN,如果传入的文件名为null,则GetExtension将仅返回null

指定路径的扩展名(包括句点“”),或 Nothing[Null]或String.Empty。如果路径为Nothing[Null],则GetExtension 不返回任何内容[Null]。如果路径没有扩展信息, GetExtension返回String.Empty


因此,在继续下一步之前,请先检查(file!=null&&file.FileName!=null)

Get extension方法返回文件的扩展名。 检查下面的代码示例

string s = System.IO.Path.GetExtension("file1.aspx");
你可以用 FileUpload1.fileName而不是FileUpload1.postedfile.fileName


希望有帮助

尝试在和之间添加此回发触发器

</ContentTemplate>
  <Triggers>
     <asp:PostBackTrigger ControlID="Button1" />
  </Triggers>
</asp:UpdatePanel>

并将enctype=“多部分/表单数据”添加到表单中

<form id="form1" runat="server" enctype="multipart/form-data">

使用

而不是

string ext = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);

检查FileUpload1.PostedFile是否为null。它如何返回null并引发异常?请更具体一点:哪行代码引发异常?System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);此行抛出一个异常大多数
NullReferenceException
的情况都是相同的。请参阅“”以获取一些提示。请尝试检查FileUpload1.PostedFile是否为null,有时asp:FileUpload组件无法与更新面板一起使用