簡體   English   中英

如何在C#中檢查文件夾中已上傳的文件或圖像

[英]How to check already file upload or image in folder in c#

我已經使用asp.net和c#創建了學生詳細信息。

我最近在編輯詳細信息時添加了圖像字段,並編輯了一些未提交圖像的字段(如有必要,則進行了編輯),然后提交。在警報中顯示“請上傳您的圖像”。

所以我需要檢查圖像文件夾中的圖像是否為空以及文件上傳中是否為空。

這是我的代碼:

后台代碼:

protected void btnsub_Click(object sender, EventArgs e)
        {
            SqlConnection con = Connection.DBconnection();
            if (Textid.Text.Trim().Length > 0)
            {
                SqlCommand com = new SqlCommand("StoredProcedure3", con);
                com.CommandType = CommandType.StoredProcedure;
                com.Parameters.AddWithValue("@id", Textid.Text.Trim());
                com.Parameters.AddWithValue("@Name", Textusername.Text.Trim());
                com.Parameters.AddWithValue("@Class", Textclass.Text.Trim());
                com.Parameters.AddWithValue("@Section", Textsection.Text.Trim());
                com.Parameters.AddWithValue("@Address", Textaddress.Text.Trim());
                try
                {
                    string filename = string.Empty;
                    if (fileupload.PostedFile.FileName.Length > 0)
                    {
                        filename = Path.GetFileName(fileupload.PostedFile.FileName);
                        fileupload.SaveAs(Server.MapPath("~/Images/" + filename));
                    }
                    com.Parameters.AddWithValue("@Image",(filename.Length>0)? "Images/" + filename:string.Empty);
                    com.ExecuteNonQuery();                    
                }
                catch (Exception ex)
                {
                    btnsub.Text = ex.Message;
                }
                Response.Redirect("studententry.aspx");
            }
            else
            {
                SqlCommand com = new SqlCommand("StoredProcedure1", con);
                com.CommandType = CommandType.StoredProcedure;
                com.Parameters.AddWithValue("@Name", Textusername.Text.Trim());
                com.Parameters.AddWithValue("@Class", Textclass.Text.Trim());
                com.Parameters.AddWithValue("@Section", Textsection.Text.Trim());
                com.Parameters.AddWithValue("@Address", Textaddress.Text.Trim());
                try
                {
                    string filename = string.Empty;
                    if (fileupload.PostedFile.FileName.Length > 1)
                    {
                        filename = Path.GetFileName(fileupload.PostedFile.FileName);
                        fileupload.SaveAs(Server.MapPath("~/Images/" + filename));
                    }
                    com.Parameters.AddWithValue("@Image",(filename.Length>0)? "Images/" + filename:string.Empty);
                    com.ExecuteNonQuery();                    
                }
                catch (Exception ex)
                {
                    btnsub.Text = ex.Message;
                }
                Response.Redirect("studententry.aspx");
            }
        }
        protected void btnrst_Click(object sender, EventArgs e)
        {
            Textid.Text = string.Empty;
            Textusername.Text = string.Empty;
            Textclass.Text = string.Empty;
            Textsection.Text = string.Empty;
            Textaddress.Text = string.Empty;
        }
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            SqlConnection con = Connection.DBconnection();

            if (e.CommandName == "EditRow")
            {

                GridViewRow gr = (GridViewRow)((Button)e.CommandSource).NamingContainer;
                int index = gr.RowIndex; 
                hiddenfield.Value = index.ToString(); 
                Textid.Text = gr.Cells[0].Text;
                Textusername.Text = gr.Cells[1].Text;
                Textclass.Text = gr.Cells[2].Text;
                Textsection.Text = gr.Cells[3].Text;
                Textaddress.Text = gr.Cells[4].Text;
                Image1.ImageUrl = ((System.Web.UI.WebControls.Image)gr.Cells[5].Controls[0]).ImageUrl;               
            }
            else if (e.CommandName == "Deleterow")
            {
                SqlCommand com = new SqlCommand("StoredProcedure4", con);
                com.CommandType = CommandType.StoredProcedure;
                com.Parameters.AddWithValue("@ID", Convert.ToInt32(e.CommandArgument));
                var id = Int32.Parse(e.CommandArgument.ToString());                
                com.ExecuteNonQuery();
                Response.Redirect("studententry.aspx");
            }
        }
        protected void GridView1_SelectedIndexChanged(Object sender, EventArgs e)
        {
            int index = GridView1.SelectedIndex;
            hiddenfield.Value = index.ToString();
        }

aspx:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

    <center><div><h4>Student Registration</h4></div></center>
<div class="tblalign">
    <table style="width: 100%;">
    <tr>
    <td><asp:HiddenField ID="hiddenfield" runat="server" /> 
    <asp:TextBox ID="Textid" runat="server" Visible="false"></asp:TextBox>
    </td>

    </tr>
        <tr>
            <td>
                <asp:Label ID="Label1" runat="server" Text="Name"></asp:Label>

            </td>
            <td>
                &nbsp;
            </td>
            <td>
                <asp:TextBox ID="Textusername" runat="server"></asp:TextBox>

            </td>
        </tr>
        <tr>
            <td>
                <asp:Label ID="Label2" runat="server" Text="Class"></asp:Label>

            </td>
            <td>
                &nbsp;
            </td>
            <td>
                <asp:TextBox ID="Textclass" runat="server"></asp:TextBox>

            </td>
        </tr>
        <tr>
            <td>
                <asp:Label ID="Label3" runat="server" Text="Section"></asp:Label>

            </td>
            <td>
                &nbsp;
            </td>
            <td>
                <asp:TextBox ID="Textsection" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
        <td>
            <asp:Label ID="Label5" runat="server" Text="Address"></asp:Label>
        </td>

        <td>
            &nbsp;
        </td>
        <td>
            <asp:TextBox ID="Textaddress" runat="server"></asp:TextBox>
        </td>
        </tr>
        <tr>
            <td>
            <asp:Label ID="Label4" runat="server" Text="Image"></asp:Label>
            </td>
            <td>
            &nbsp;
        </td>
        <td>
            <asp:Image ID="Image1" runat="server" ControlStyle-Width="50" ControlStyle-Height = "50"  />

        </td>
        <td>
        <asp:FileUpload ID="fileupload" runat="server" />  
         </td>
        </tr>
        <tr>
        <td>
            <asp:Button ID="btnsub" runat="server" Text="Submit" OnClick="btnsub_Click" OnClientClick="return register();" />
            <asp:Button ID="btnrst" runat="server" Text="Reset" OnClick="btnrst_Click" />
        </td>
        <td>
        </td>            
        <td>            
        </td>
    </tr>

</table></div>
<br />
<br />
<center><div><h4>Student Records</h4></div></center><br /> <br />
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="ID" DataSourceID="SqlDataSource1" 
        OnRowCommand="GridView1_RowCommand" 
        EnablePersistedSelection="True" BackColor="White" 
        OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
        <Columns>
            <asp:BoundField DataField="ID" HeaderText="ID" InsertVisible="False" 
                ReadOnly="True" SortExpression="ID" />
            <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
            <asp:BoundField DataField="Class" HeaderText="Class" SortExpression="Class" />
            <asp:BoundField DataField="Section" HeaderText="Section" 
                SortExpression="Section" />
            <asp:BoundField DataField="Address" HeaderText="Address" 
                SortExpression="Address" />
                <asp:ImageField DataImageUrlField="Image" HeaderText="Image" ControlStyle-Width="50" ControlStyle-Height = "50">                
                </asp:ImageField> 
            <asp:TemplateField HeaderText="Edit">
               <ItemTemplate>
                 <asp:Button runat="server" ID="btnedit" Text="Edit" CommandName="EditRow"></asp:Button>                    
               </ItemTemplate>
                <ControlStyle BorderColor="#CCFF66" />
          </asp:TemplateField>
          <asp:TemplateField HeaderText="Delete">
          <ItemTemplate>
                 <asp:Button runat="server" ID="btndelete" Text="Delete" CommandArgument='<%# Eval("Id") %>' CommandName="Deleterow"></asp:Button>                    
               </ItemTemplate>
          </asp:TemplateField>            
        </Columns>
        <SelectedRowStyle BackColor="#FF66FF" />
    </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="StoredProcedure2"          
        SelectCommandType="StoredProcedure">
            <DeleteParameters>
                <asp:Parameter Name="ID" />
                <asp:Parameter Name="Name" />
                <asp:Parameter Name="Class" />
                <asp:Parameter Name="Section" />
                <asp:Parameter Name="Image" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="ID" />
                <asp:Parameter Name="Name" />
                <asp:Parameter Name="Class" />
                <asp:Parameter Name="Section" />
                <asp:Parameter Name="Image" />
            </UpdateParameters>
    </asp:SqlDataSource>
</asp:Content>

輸出值

我認為在editrow命令中,我需要檢查條件。 其實我是.net的新手。

任何人都可以幫助我解決此問題。

任何幫助將不勝感激。

謝謝,

要檢查特定文件,請使用File.Exists(path) ,它將返回一個布爾值,指示路徑中的文件是否存在。

System.IO.File.Exists(path)

由於您的代碼是同步的,因此可以在將圖像上傳到文件夾后檢查圖像是否立即加載。 例如:

try
  {
     string filename = string.Empty;
     if (fileupload.PostedFile.FileName.Length > 0)
        {
           filename = Path.GetFileName(fileupload.PostedFile.FileName);
           fileupload.SaveAs(Server.MapPath("~/Images/" + filename));
        }     
     string imgAddress = Path.GetFileName(fileupload.PostedFile.FileName);   
     //check whether your image is created:
     bool isExist=System.IO.File.Exists(imgAddress);
     com.Parameters.AddWithValue("@Image",(filename.Length>0)? "Images/" + filename:string.Empty);
     com.ExecuteNonQuery();                    
  }
catch (Exception ex)
{
   btnsub.Text = ex.Message;
}
filename = Path.GetFileName(fileupload.PostedFile.FileName);
var fullPath="~/Images/" + filename;


if (System.IO.File.Exists(Server.MapPath(fullPath)))
{
    // file exist
}
else
{
   // file not exist
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM