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

دانلود فایلهای GridView با استفاده از LinkButton Click Event و C # و VB.Net در ASP.Net
0 0
دانلود فایلهای GridView با استفاده از LinkButton Click Event و C # و VB.Net در ASP.Net

با سلام در این مقاله توضیح خواهیم داد که چگونه می توانیم فایلها را از پوشه ویندوز و دایرکتوری ذخیره و بازیابی کنیم و آنها را در کنترل GridView با گزینه دانلود و حذف نمایش دهیم.
 
کد HTML
در زیر کد HTML صفحه است ، جایی که یک FileUpload برای کنترل آپلود فایل ها ، یک دکمه کنترل برای شروع آپلود فایل ها و یک GridView control برای نمایش  فایل ها از پوشه داریم.

<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

آپلود فایل و ذخیره درdirectory یا پوشه
هنگامی که فایل در کنترل FileUpload انتخاب شد و دکمه آپلود کلیک شد ، رویداد زیر شروع می شود. در زیر پوشه Uploads را در فهرست اصلی وب سایت ASP.Net خود قرار داده ایم که در آن فایل آپلود شده را ذخیره می کنیم.
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
در اینجا تمام فایل ها را از دایرکتوری Uploads که ایجاد کرده ایم می خوانیم و سپس فایل های منتخب را به کنترل 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
وقتی رویداد lnkDownload LinkButton در GridView Row کلیک می شود ، رویداد زیر اجرا می شود . با استفاده از ویژگی CommandArgument از ASP.Net LinkButton ، مسیر فایل را با استفاده از آن که در حال دانلود آن هستیم ، دریافت می کنیم.
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

حذف پرونده آپلود شده از GridView
وقتی رویداد lnkDelete LinkButton درGridView Row کلیک می شود ، رویداد زیر اجرا می شود . با استفاده از ویژگی CommandArgument از LinkButton ، مسیر فایل را با استفاده از آن حذف می کنیم.
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 استفاده کنید.

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