Asp.Net Gridview Dosya İndirme İşlemi
Asp.net ile dosyaları yükleme ve yüklenen dosyalarının isimlerini veri tabanına kaydetme işlemini Asp.Net Dosya Yükleme ve Dosya Adını ve Yolunu Veritabanı’na Kaydetme konusunda anlatmıştık; şimdi yüklenen dosyaları bir gridview içerisinde gösterip dosyalarını indirme işlemini yapalım. Bir önceki örnekte kullandığımız veritabanı ve dosyayapısını kullanarak o örnek üzerinden gideceğiz..
Bunun için sayfamıza bir gridview ekleyip dosyaları indirmek içinde bir link vereceğiz
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>www.aspnetornekleri.com</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" DataSourceID="AccessDataSource1" OnRowCommand="GridView1_RowCommand"> <Columns> <asp:TemplateField HeaderText="Dosya İndir"> <ItemTemplate> <asp:HyperLink runat="server" ID="downloaddosya" NavigateUrl='<%# Eval("dosyaadi","~/yuklenendosyalar/{0}") %>'>Download</asp:HyperLink> </ItemTemplate> </asp:TemplateField> <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True" SortExpression="id" /> <asp:BoundField DataField="dosyaadi" HeaderText="dosyaadi" SortExpression="dosyaadi" /> <asp:BoundField DataField="aciklama" HeaderText="aciklama" SortExpression="aciklama" /> </Columns> </asp:GridView> <asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/App_Data/dosyalar.accdb" SelectCommand="SELECT * FROM [dosya]"> </asp:AccessDataSource> </div> </form> </body> </html>
Dosyaları indirebilmek için gridview içerisine bir download alanı ekliyoruz. NavigateUrl=’<%# Eval("dosyaadi","~/yuklenendosyalar/{0}") %>‘ satırı ile kullanıcının dosyaları indirlebilmesi için linkleri oluşturuyoruz.
Sağolun çok teşekkürler 🙂
rica ederim iyi çalışmalar kolay gelsin…
visual studioda bindingnavigator özelliginde bulunan kaydet sil yeni kayıt özellikleri dışında bulunan combobox textbox progressbar kullanımı ile ilgili bir döküman varsa yayınlamanız mümkünmü
Hocam bu işlemi linkbuttonla nasıl yaparız repeater verileri çektik link buttonua içine koyduk repeaterın ama indirimiyorum bir türlü ?
linkbutton yapısı
<asp:LinkButton ID="LinkButton1" CommandArgument = '' runat="server" OnClick = "indir">İndir
code behind bölümünde aşağıdaki kodları yazman yeterli
protected void indir(object sender, EventArgs e)
{
string dosyayolu ="~/yuklenendosyalar/"+ (sender as LinkButton).CommandArgument;
Response.ContentType = ContentType;
Response.AppendHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(dosyayolu));
Response.WriteFile(dosyayolu);
Response.End();
}
Teşekkürler 🙂