Why does my File.HasFile always return false

2019-08-19 08:02发布

The user will enter a customer number, then select a file to upload, then enter a description and press the save button. However, when I check to see if they've selected a file, it always returns false! I'd like to know why.

Edit: I am now using form with parameter enctype="multipart/form-data" and this is wrapped in an update panel. Both the form and update panel are in a master page

Here's the snippet of code that error handles and is getting the HasFile() value:

else if ( ( images.Selected == true || docs.Selected == true ) && 
                  ( Upload.HasFile == false || txtInfo.Text == string.Empty ) )
        {
            if ( Upload.HasFile == false )
                lblErrorMessage.Text = "You haven't selected a file";
            else lblErrorMessage.Text = "You must enter a description";

            validated = false;
        }

And here's the method that came from, the save button

protected void btnSaveNew_Click( object sender, EventArgs e )
    {
        bool validated = true;

        lblErrorMessage.ForeColor = System.Drawing.Color.Red;

        if ( txtCustomerNumber.Text.Length != 8 )
        {
            if ( txtCustomerNumber.Text.Length == 0 )
                lblErrorMessage.Text = "Hey! What about the customer number?";
            else if ( txtCustomerNumber.Text.Length > 8 )
                lblErrorMessage.Text = "Invalid Customer Number length (" + ( txtCustomerNumber.Text.Length - 8 ) + " char(s) too long)";
            else lblErrorMessage.Text = "Invalid Customer Number length (" + ( 8 - txtCustomerNumber.Text.Length ) + " char(s) short)";

            validated = false;
        }

        else if ( links.Selected == true && ( txtLink.Text == string.Empty || txtInfo.Text == string.Empty ) )
        {
            if ( txtLink.Text == string.Empty )
                lblErrorMessage.Text = "Hey! You forgot to enter a link!";
            else lblErrorMessage.Text = "You must enter a description";

            validated = false;
        }

        else if ( ( images.Selected == true || docs.Selected == true ) && 
                  ( Upload.HasFile == false || txtInfo.Text == string.Empty ) )
        {
            if ( Upload.HasFile == false )
                lblErrorMessage.Text = "You haven't selected a file";
            else lblErrorMessage.Text = "You must enter a description";

            validated = false;
        }

        else if ( txtInfoDesc.Text == string.Empty || txtInfo.Text == string.Empty )
        {
            if ( txtInfoDesc.Text == string.Empty )
                lblErrorMessage.Text = "You must enter an info description";
            else lblErrorMessage.Text = "You must enter info Data";

            validated = false;
        }

        if ( validated == false )
        {
            btnModify.Visible           = false;
            btnCreateNew.Visible        = false;
            ddlCustomerNumber.Visible   = false;
            btnSaveNew.Visible          = true;
            btnCancel.Visible           = true;
            txtCustomerNumber.Visible   = true;

            switch ( rblSection.SelectedIndex )
            {
                case 0: txtInfo.Visible = true;
                        txtLink.Visible = true;
                        break;
                case 1: 
                case 2: txtInfo.Visible = true;
                        Upload.Visible  = true;
                        break;
                case 3: txtInfo.Visible     = true;
                        txtInfoDesc.Visible = true;
                        break;
            }

            if ( GetCategoryIDCookie() != 0 )
                divData.Attributes.Add( "Style", "overflow:auto" );
        }
        else
        {
            addNewCustomerNumber( txtCustomerNumber.Text, txtInfoDesc.Text, txtInfo.Text );
            ddlCustomerNumber.Visible = true;
            divData.Attributes.Remove( "Style" );
            Response.Redirect( Request.RawUrl );
        }
    }

3条回答
放我归山
2楼-- · 2019-08-19 08:57

Is there an update panel wrapped around the File Upload?

查看更多
Ridiculous、
3楼-- · 2019-08-19 08:57

Do you have enctype="multipart/form-data" on your form tag?

查看更多
你好瞎i
4楼-- · 2019-08-19 09:01

can you post the code for the Upload class? perhaps you erroneously initialized that variable as false and somehow forgot to set it to true during some event.

查看更多
登录 后发表回答