如果fileupload不包含文件,如何控制提交表单?

时间:2015-11-19 01:59:25

标签: c# asp.net sql-server button file-upload

大家好日子,如果fileupload中没有文件,我想问你如何控制提交表单。我上传文件的代码就是这个。

FileInfo fi = new FileInfo(FileUpload1.FileName);
byte[] documentContent = FileUpload1.FileBytes;

string name = fi.Name;
string extn = fi.Extension;

da.InsertCommand.Parameters.Add("@DocumentName", SqlDbType.VarChar).Value = name;
da.InsertCommand.Parameters.Add("@DocumentContent", SqlDbType.VarBinary).Value = documentContent;
da.InsertCommand.Parameters.Add("@DocumentExt", SqlDbType.VarChar).Value = extn;

cs.Open();
da.InsertCommand.ExecuteNonQuery();
cs.Close();

如果没有选择文件并且单击了提交按钮,我想要一些限制它存储在数据库中的东西。我不知道在if-else语句中放什么。请帮帮我。

5 个答案:

答案 0 :(得分:0)

我相信这会为你做到这一点

<?php

echo "$" . $whatever;

$moneyvalue = "$" . $floatvalue;
echo $moneyvalue;

function FormatMoney($x) {
    return "$" . $x;
}
echo FormatMoney($myfloatvalue);

?>

因此,当我们检查string name = fi.Name; string extn = fi.Extension; if(!String.IsNullOrEmpty(name)) { da.InsertCommand.Parameters.Add("@DocumentName", SqlDbType.VarChar).Value = name; da.InsertCommand.Parameters.Add("@DocumentContent", SqlDbType.VarBinary).Value = documentContent; da.InsertCommand.Parameters.Add("@DocumentExt", SqlDbType.VarChar).Value = extn; cs.Open(); da.InsertCommand.ExecuteNonQuery(); cs.Close(); } 方法时。它检查文件名是否为空。如果没有选择文件且值为none,则不会调用SQL事件。

答案 1 :(得分:0)

在模型中的属性上添加[必需]标记。您可以使用验证添加回复和其他内容。

答案 2 :(得分:0)

我不确定你需要哪一个:

1.限制提交(回发),添加RequiredFieldValidator

with cte as (
      select t.tableid, t.referencedtableid, 1 as lev
      from t
      where t.id = 1
      union all
      select cte.tableid, t.referencedtableid, lev + 1
      from cte join
           t
           on cte.referencedtableid = t.id
    )
select referencedtableid
from cte;

2。不要只保存图像:

<asp:RequiredFieldValidator ID="Validation1" runat="server" ControlToValidate="FileUpload1" ErrorMessage="An image file is required"></asp:RequiredFieldValidator>

希望这有帮助...

答案 3 :(得分:0)

使用以下方案:

  ListBox lbAttachments = (ListBox)FileUpload1;
  if(lbAttachments.Items.Count > 0)
  {
         for(int i = 0; i < lstAttachments.Items.Count; i++)
         {
               FileInfo fi = new FileInfo(lbAttachments.Items[i].Text);
               byte[] documentContent = FileUpload1.FileBytes;

               string name = fi.Name;
               string extn = fi.Extension;
               SqlCommand cmdInsert = new SqlCommand("Insert into tableName(DocumentName,DocumentContent, DocumentExt) Values(@DocumentName,@DocumentContent,@DocumentExt)", con);
               SqlParameter Name = cmdInsert.Parameters.Add("@DocumentName", SqlDbType.VarChar, 100);
               SqlParameter DocumentContent = cmdInsert.Parameters.Add("@DocumentContent", SqlDbType.Int);
               SqlParameter DocumentExt= cmdInsert.Parameters.Add("@DocumentExt", SqlDbType.VarChar, 10);
               da.InsertCommand.Parameters.Add("@DocumentName", SqlDbType.VarChar).Value = name;
               da.InsertCommand.Parameters.Add("@DocumentContent", SqlDbType.VarBinary).Value = documentContent;
               da.InsertCommand.Parameters.Add("@DocumentExt", SqlDbType.VarChar).Value = extn;

               cs.Open();
               da.InsertCommand.ExecuteNonQuery();
               cs.Close();
         } 
   }

//另一种方式是

if(FileUpload1.HasFile)//To check file os present
{
    if(FileUpload1.PostedFile.ContentLength > 0)
                {
                    FileInfo fi = new FileInfo(FileUpload1.FileName);
                    byte[] documentContent = FileUpload1.FileBytes;

                    string name = fi.Name;
                    string extn = fi.Extension;
                    SqlCommand cmdInsert = new SqlCommand("Insert into tableName(DocumentName,DocumentContent, DocumentExt) Values(@DocumentName,@DocumentContent,@DocumentExt)", con);
                    SqlParameter Name = cmdInsert.Parameters.Add("@DocumentName", SqlDbType.VarChar, 100);
                    SqlParameter DocumentContent = cmdInsert.Parameters.Add("@DocumentContent", SqlDbType.Int);
                    SqlParameter DocumentExt= cmdInsert.Parameters.Add("@DocumentExt", SqlDbType.VarChar, 10);
                    da.InsertCommand.Parameters.Add("@DocumentName", SqlDbType.VarChar).Value = name;
                    da.InsertCommand.Parameters.Add("@DocumentContent", SqlDbType.VarBinary).Value = documentContent;
                    da.InsertCommand.Parameters.Add("@DocumentExt", SqlDbType.VarChar).Value = extn;

                    cs.Open();
                    da.InsertCommand.ExecuteNonQuery();
                    cs.Close(); 
               }
         }

答案 4 :(得分:0)

您可以直接检查您的文件名是否包含任何数据。

喜欢:

 if (FileUpload1.FileName != "")
 {
FileInfo fi = new FileInfo(FileUpload1.FileName);
byte[] documentContent = FileUpload1.FileBytes;

string name = fi.Name;
string extn = fi.Extension;

// Add Connection string here //

da.InsertCommand.Parameters.Add("@DocumentName", SqlDbType.VarChar).Value = name;
da.InsertCommand.Parameters.Add("@DocumentContent", SqlDbType.VarBinary).Value = documentContent;
da.InsertCommand.Parameters.Add("@DocumentExt", SqlDbType.VarChar).Value = extn;

cs.Open();
da.InsertCommand.ExecuteNonQuery();
cs.Close();
}
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "popup", "alert('No Files Uploaded');", true);
}

更新:我认为您的代码存在问题。你用过

  da.InsertCommand.Parameters.Add("@DocumentName", SqlDbType.VarChar).Value = name;
  da.InsertCommand.Parameters.Add("@DocumentContent", SqlDbType.VarBinary).Value = documentContent;
  da.InsertCommand.Parameters.Add("@DocumentExt", SqlDbType.VarChar).Value = extn;

插入数据。因此,请尝试以下方法插入数据

if (FileUpload1.FileName != "")
 {
 FileInfo fi = new FileInfo(FileUpload1.FileName);
 byte[] documentContent = FileUpload1.FileBytes;

 string name = fi.Name;
 string extn = fi.Extension;

 SqlConnection connections = new SqlConnection(strConn);
 SqlCommand command = new SqlCommand("INSERT INTO tablename(DocumentName, DocumentContent, DocumentExt) VALUES (@DocumentName, @DocumentContent, @DocumentExt)", connections);

 SqlParameter param0 = new SqlParameter("@DocumentName", SqlDbType.VarChar);
              param0.Value = name;
              command.Parameters.Add(param0);

 SqlParameter param1 = new SqlParameter("@DocumentContent", SqlDbType.VarBinary);
              param1.Value = documentContent;
              command.Parameters.Add(param1);

 SqlParameter param2 = new SqlParameter("@DocumentExt", SqlDbType.VarChar);
              param2.Value = extn;
              command.Parameters.Add(param2);
connections.Open();
int numRowsAffected = command.ExecuteNonQuery();
connections.Close();

   if (numRowsAffected != 0)
     {
     Response.Write("<BR>Rows Inserted successfully");
     }
   else
     {
    Response.Write("<BR>An error occurred uploading the image");
     }
  }
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "popup", "alert('No Files Uploaded');", true);
}