توضیحات و دانلود

نمایش لیست فایل ها در پوشه سرور در GridView با ASP.Net
0 0
نمایش لیست فایل ها در پوشه سرور در GridView با ASP.Net

با سلام در این مقاله با یک مثال ، نحوه بارگذاری فایلها ، ذخیره پوشه (دایرکتوری) در سرور دیسک  و نمایش در GridView در ASP.Net با استفاده از C # و VB.Net توضیح خواهیم داد.
فایلهای آپلود شده را می توان از پوشه (فهرست) در ASP.Net دانلود وحذف کرد.
کد HTML
کد HTML زیر شامل یک GridView ، یک کنترل FileUpload و یک دکمه است.

<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnUpload" runat="server" Text="Upload" OnClick="UploadFile" />
<hr />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" EmptyDataText = "No files uploaded">
    <Columns>
        <asp:BoundField DataField="Text" HeaderText="File Name" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID="lnkDownload" Text = "Download" CommandArgument = '<%# Eval("Value") %>' runat="server" OnClick = "DownloadFile"></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:LinkButton ID = "lnkDelete" Text = "Delete" CommandArgument = '<%# Eval("Value") %>' runat = "server" OnClick = "DeleteFile" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

نامهای نام
شما باید نامهای زیر را وارد کنید.
C #

using System.IO;

VB.Net

Imports System.IO

بارگذاری فایل و ذخیره پوشه (دایرکتوری) درسرور دیسک
با انتخاب فایل در کنترل FileUpload و کلیک دکمه بارگذاری ، رویداد handler زیر اجرا می شود.
فایل بارگذاری شده در یک پوشه (دایرکتوری) به نام Uploads ذخیره می شود و برای نمایش فایل آپلود شده در GridView ، صفحه به خود برمیگردد .
C #

protected void UploadFile(object sender, EventArgs e)
{
    string fileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
    FileUpload1.PostedFile.SaveAs(Server.MapPath("~/Uploads/") + fileName);
    Response.Redirect(Request.Url.AbsoluteUri);
}

VB.Net

Protected Sub UploadFile(ByVal sender As Object, ByVal e As EventArgs)
    Dim fileName As String = Path.GetFileName(FileUpload1.PostedFile.FileName)
    FileUpload1.PostedFile.SaveAs((Server.MapPath("~/Uploads/") + fileName))
    Response.Redirect(Request.Url.AbsoluteUri)
End Sub

نمایش فایل ها از پوشه (فهرست) در GridView
در داخل رویداد Page Load ، لیست تمام فایل های پوشه Uploads با استفاده از متد GetFiles از کلاس Directory در یک رشته  Array قرار می گیرد.
سپس ، مقادیر Array در یک مجموعه Generic List متشکل از اشیاء کلاس ListItem کپی و از آن برای جمع آوری کنترل GridView استفاده می شود.
C #

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        string[] filePaths = Directory.GetFiles(Server.MapPath("~/Uploads/"));
        List<ListItem> files = new List<ListItem>();
        foreach (string filePath in filePaths)
        {
            files.Add(new ListItem(Path.GetFileName(filePath), filePath));
        }
        GridView1.DataSource = files;
        GridView1.DataBind();
    }
}

VB.Net

Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
    If Not IsPostBack Then
        Dim filePaths() As String = Directory.GetFiles(Server.MapPath("~/Uploads/"))
        Dim files As List(Of ListItem) = New List(Of ListItem)
        For Each filePath As String In filePaths
            files.Add(New ListItem(Path.GetFileName(filePath), filePath))
        Next
        GridView1.DataSource = files
        GridView1.DataBind()
    End If
End Sub

دانلود فایل آپلود شده
هنگامی که دکمه دانلود در GridView Row کلیک می شود ، رویداد handler زیر اجرا می شود.
مسیر فایل از ویژگی CommandArgument در LinkButton جمع آوری شده است.
سرانجام با استفاده از روش WritFile از کلاس Response ، فایل با استفاده از مسیر و فایل آن به Response Stream ایجاد می شود.
C #

protected void DownloadFile(object sender, EventArgs e)
{
    string filePath = (sender as LinkButton).CommandArgument;
    Response.ContentType = ContentType;
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(filePath));
    Response.WriteFile(filePath);
    Response.End();
}

VB.Net

Protected Sub DownloadFile(ByVal sender As Object, ByVal e As EventArgs)
    Dim filePath As String = CType(sender, LinkButton).CommandArgument
    Response.ContentType = ContentType
    Response.AppendHeader("Content-Disposition", ("attachment; filename=" + Path.GetFileName(filePath)))
    Response.WriteFile(filePath)
    Response.End()
End Sub

حذف پرونده آپلود شده
هنگامی که دکمه Delete در GridView Row کلیک شود ،  رویداد handler بعدی زیر اجرا می شود.
مسیر فایل از ویژگی CommandArgument در LinkButton جمع آوری شده است.
سرانجام با استفاده از روش Delete از کلاس فایل ، فایل حذف می شود.
C #

protected void DeleteFile(object sender, EventArgs e)
{
    string filePath = (sender as LinkButton).CommandArgument;
    File.Delete(filePath);
    Response.Redirect(Request.Url.AbsoluteUri);
}

VB.Net

Protected Sub DeleteFile(ByVal sender As Object, ByVal e As EventArgs)
    Dim filePath As String = CType(sender, LinkButton).CommandArgument
    File.Delete(filePath)
    Response.Redirect(Request.Url.AbsoluteUri)
End Sub

 


دانلود
  • لینک های دانلود دوره های آموزشی تا پایان دوره قابل دانلود می باشد.
  • برای خارج کردن فایل ها از حالت فشرده از ورژن جدید نرم افزار winrar استفاده کنید.
  • برای خارج کردن فایل ها از حالت فشرده لینک های دانلودی که چندین قسمت می باشند فقط قسمت اول را از حالت فشرده خارج کنید.
  • لطفا توضیحات نوشته شده برای مطالب را با دقت بخوانید.
  • برای نمایش فیلم ها می توانید از نرم افزار هایی مانند Km Player , VLC Player یا Media Player Classic استفاده کنید.

ارسال نظر
ارسال پیام به :