【发布时间】:2009-12-22 01:12:35
【问题描述】:
用户将输入客户编号,然后选择要上传的文件,然后输入描述并按保存按钮。但是,当我检查他们是否选择了一个文件时,它总是返回 false!我想知道为什么。
编辑:我现在使用带有参数 enctype="multipart/form-data" 的表单,它包含在更新面板中。表单和更新面板都在母版页中
这是错误处理并获取 HasFile() 值的代码的 sn-p:
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;
}
这是来自的方法,保存按钮
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 );
}
}
【问题讨论】:
-
你是不是碰巧在更新面板里
-
你的表单标签上有 enctype="multipart/form-data" 吗?
-
@Jeffrey - 我没有,但将它添加到我的表单参数并没有改变我的返回值
标签: c# asp.net file-upload