Asp.Net Dosya Yükleme ve Dosya Adını ve Yolunu Veritabanı’na Kaydetme

fileuploadvt5Asp.Net FileUpload Kullanımı konusunda dosya yükleme işleminden bahsetmiştik uygulamamızda dosyalar bizim belirlediğimiz bir klasöre kaydediliyordu , ama daha sonra hangi dosyalar yüklenmiş bunları kontrol etmek veya yüklenen dosyaları kullanmak istersek bu yöntem bize sıkıntı yaratabilir; onun için yüklenen dosyanın yolunu ve adını veritabanı’na kaydetmek en mantıklısı, şimdi bu uygulamayı yapalım 🙂
İlk olarak bize dosya isimlerini ve isterseniz de açıklamalarını kaydetmek için bir veritabanı oluşturalım
fileuploadvt1
Şimdi oluşturduğumuz veritabanı’nı projemize dahil edeceğiz bunun için App_Data klasörünü sisteme ekleyip oluşturduğumuz veritabanı’nı bu klasöre kopyalıyoruz.
fileuploadvt3
Şimdi sıra geldi yüklenecek dosyaları oluşturmaya bunun için proje ismi üzerinde sağ tıklyıp Add-New Folder seçeneğini seçip klasör ismi olarak da yüklenen dosyalar diyoruz
fileuploadvt2
Şimdi Sıra geldi kodlara 😀

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>FileUpload örnekleri: www.aspnetornekleri.com</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Font-Size="Large" ForeColor="CornflowerBlue"></asp:Label>
        <br />
        Yüklenecek Dosya<br />
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <br />
        Kısa Açıklama<br />
        <asp:TextBox ID="TextBox1" runat="server" Height="54px" TextMode="MultiLine" 
            Width="210px"></asp:TextBox>
        <br />
        <br />
        <asp:Button ID="Button1" runat="server" Text="Dosya Kaydet" 
            onclick="Button1_Click"  />
    </div>
    </form>
</body>
</html>

kod bölümüne
using System.IO;
using System.Data.OleDb; ekledikten sonra

Dosya Kaydet Butonu içine

if (FileUpload1.HasFile)
                try
                {
                    OleDbConnection db_baglanti;

                    db_baglanti = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; DATA Source=" + Server.MapPath("App_Data/dosyalar.accdb"));
                    FileUpload1.SaveAs(Request.PhysicalApplicationPath + "yuklenendosyalar//" + FileUpload1.FileName);
                    Label1.Text = "Dosya Adı: " +
                        FileUpload1.PostedFile.FileName +
                        "<br />Dosya Boyutu: " +
                        FileUpload1.PostedFile.ContentLength +
                        "<br />Dosya Türü: " +
                        FileUpload1.PostedFile.ContentType;
                    db_baglanti.Open();
                    OleDbCommand db_komut = new OleDbCommand("Insert INTO dosya ( dosyaadi, aciklama ) Values( '" + FileUpload1.FileName.ToString() + "','" + TextBox1.Text + "')", db_baglanti);
                    db_komut.ExecuteNonQuery();
                    db_baglanti.Close();
                }
                catch (Exception ex)
                {
                    Label1.Text = "Hata Oluştu: " + ex.Message.ToString();
                }
            else
            {
                Label1.Text = "Dosya Seçin ve Yükleyin";
            }

Kodlarda yüklenen dosyanın dosya adı ve yazdığımız kısa açıklama veritabanına ,dosya ise yuklenendosyalar klasörüne yükleniyor, Tablomuz
fileuploadvt6

Bunlarda ilginizi çekebilir...

Subscribe
Bildir
guest
7 Yorum
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
ogrenci

Yaptım çalıştı hocaya götürdüm alt kısma bi datagridwiew ekledi altta yüklediğim dosyaların ismi gözüktü. bunlara tıklayınca insin istiyorum dedi nasıl bişey yaparsak çalışır

BilisimOgretmeni

gridview dosya indirme linkini inceleyin veya gridview e bir template field ekleyin içine asp:Hyperlink ekleyin NavigateURL=” ekleyin Text=”İndir” yazın

Kurtuluş Kara

hocam 1 id üzerinden birkaç dosya kaydetmek istiyorum o sırada boş olan alanı nasıl seçtireceğim. Daha Detaylı anlatacak olursam; id yerine kullanıcı id diyelim ve kullanıcı 10 dosya yükleme hakkı olsun bu şekilde kayıt yaptıracam ama boş olan alanı nasıl seçtirecem. dosyaadi1 dosyaadi2 dosyaadi3 …..

BilisimOgretmeni

kurtuluş kusura bakma soruyu tam anlayamadım, kullanıcının yüklediği dosyalardan kaçıncı dosyayı yüklemediğini tespit etmek istiyorsan o id’ye ait dosyaları sorgu ile çekip sonuç içerisinde döngü yardımıyla hangi alanların boş olduğunu tespit edebilirsin.. yada daha tam ayılamadım.. 🙂
Biraz daha detaylı açıklayabilrsen yardımcı olmaya çalışayım

kadir ince

hocam ben yüklediğim resimleri başka bi sayfada görüntülemek istiyorum napabilirim yardımcı olabilirmisiniz

Rachid

Hocam, ben fotoğrafları proje dizinine image isminde bir dosya oluşturup oraya yüklemek istiyorum ~/image şeklinde denedim olmadı ../image şeklinde denedim gene olmadı. VS 2015 kullanıyorum nasıl yapmalıyım acaba teşekkür ederim.

BilisimOgretmeni

olmadı derken oluşan hatayı veya kodları yazarsanız yardımcı olabilirim

7
0
Yazı hakkındaki yorum, görüş ve önerilerinizi yazınx
()
x