Aradığınız konuyu buradan bulabilirsiniz.
Hoşgeldiniz.Burada arama yapabilirsiniz.
Aramak istediğiniz kelimeyi giriniz...
C# ile ilgili kaynaklar
C# Konuları
SQL ile ilgili kaynaklar
SQL Konuları
ASP.NET ile ilgili kaynaklar
ASP.Net Konuları
Makale Başlığı ASP.Net sayfasındayken uygulama çalıştırmak - Dosya Açmak
2,20

                 Bir GridView içerisinde listelediğimiz dosyayı kullanıcı tıkladığında açtırmak için kod yazacağız. Önce gridview da dosya isimleri listelenecek. Daha sonra kullanıcı, bizim gridViewe eklediğimiz Select Command Butonuna basarak dosyayı İnternet Explorer aracılığı ile açacak.
                 Bu işlem için kullandığım Evrak Classı aşağıdaki gibidir.
                 Evrak Classı:

    public class Evrak
    {
        public Evrak();
 
        public byte[] Dosya { get; set; }
        public string EvrakAdi { get; set; }
        public int EvrakId { get; set; }
        public int MusteriId { get; set; }
 
        public void EvrakEkle(Evrak E);
        public Evrak GetEvrakByEvrakId(int EvrakId);
        public List<Evrak> GetEvrakByMusteriId(Evrak evrak);
    }
               Asp.Net sayfamıza önce gridView ekliyoruz. Eklediğimiz gridViewa bir Select Command Butonu ekliyoruz ve Text propertisine "Dosyayı Aç" yazıyoruz. Ve veritabanından çektiğimiz dosyaları bu gridde listeliyoruz. Kullanıcı gridview daki Dosyayı Aç butonuna tıkladığında önce veritabanından çektiğimiz dosyayı geçici bir dosyaya yazıyoruz ve Process.Start() metoduna parametre olarak veriyoruz.Ve internet explorer ile dosyamızın açılmasını sağlıyoruz. Önce kullanıcının gridde tıkladığı dosyayı veritabanımızdan getirelim. Bu işlemi aşağıdaki kod ile sağlıyoruz.
     
            GridView grid = (GridView)sender;
            int EvrakId = Convert.ToInt32(grid.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Text);
            Evrak AcilacakEvrak = new Evrak().GetEvrakByEvrakId(EvrakId);
            string dosya = System.IO.Path.GetTempFileName();
            File.WriteAllBytes(dosya, AcilacakEvrak.Dosya);

             Yukarıdaki kodu GridViewin RowComman Eventine yazıyoruz. Yukarıdaki kodda önce tıkladığımız sender nesnesini GridViewa cast ediyoruz. "e.CommanArgumend" bize tıkladığımız rowun indexini verecek. Bu özellik yardımı ile de gridden hangi rowu tıkladıysak o rowdaki Evrak idsini yakalıyoruz. Ben GridViewin ikinci kolonuna evrak id sini vermiştim.Böylece Convert.ToInt32(grid.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Text) satırı ile tıkladığımız satırın evrak idsini getirdik. Daha sonra veritabanımdan bu idye ait evrağı getirdim."string dosya=System.IO.Path.GetTempFile();"  satırı ile sistemde geçici bir dosya oluşturdum. Ve File.WriteAllBytes(dosya, AcilacakEvrak.Dosya); satırı ile veritabanından çektiğim evrak nesnesinin dosya (byte[] dizisi) propertysindeki değeri oluşturduğum geçici dosyaya yazdım.Artık elimde bir dosyam var. Şimdi bu dosyayı internet explorer ile kullanıcıya gösterelim.

            System.Diagnostics.Process proc = new System.Diagnostics.Process();

            proc.StartInfo.FileName = "IExplore.exe";

            proc.StartInfo.Arguments = dosya;

            proc.Start();


            Yukarıdaki kodda önce proc nesnesini oluşturuyoruz. Daha sonra açacağımız dosya ile ilgili parametreleri belirtiyoruz. FileName özelliğine açılacak dosyayı hangi program ile açacağımızı belirtiyoruz. Arguments özelliğine ile açacağımız dosyayı veriyoruz. Bu özelliğe birden fazla da değer verebilirsiniz bu durumda dosyaları peş peşe açacaktır. Daha sonra proc.Start() metodu ile dosyayı açıyoruz. Kodun tamamını aşağıdan alabilirsiniz.
protected void gvEvraklar_RowCommand(object sender, GridViewCommandEventArgs e)
    {
            GridView grid = (GridView)sender;
            int EvrakId = Convert.ToInt32(grid.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Text);
            Evrak AcilacakEvrak = new Evrak().GetEvrakByEvrakId(EvrakId);
            string dosya = System.IO.Path.GetTempFileName();
            File.WriteAllBytes(dosya, AcilacakEvrak.Dosya);
 
            System.Diagnostics.Process proc = new System.Diagnostics.Process();
            proc.StartInfo.FileName = "IExplore.exe";
            proc.StartInfo.Arguments = dosya;
            proc.Start();
            Process.Start("IExplore.exe", dosya);
            dosya = "";
       
    }

Not: Veritabanından gelen dosya türü .pdf' tir. Dosyayı açmak için sisteminizde Acrobat Reader kurulu olması gerekir.
Kategori ASP.Net
Eklenme Zamanı 13.6.10 20:39:47
Okunma Sayısı 1719 kez görüntülenmiş
Bu konuya yapılan yorum sayısı 0 adet yorum eklenmiş
Düşüncelerinizi Yazın Bu yazı hakkında ne düşünüyorsunuz?
Ad - Soyad: 
E-Mail Adres:    
Web Sitesi:
Yorumunuz:  
Paylaş