none
RESİM RRS feed

  • Soru

  •  asp de master page sql den resim fiyat bi de ürün adı cekicem datalist e.. ürün adi fiyat geliyo ama foto gelmiyo..projenin icine images die klasör olsturdum resimler orda..Urunler tablomda da ResimAdres diye kolon var.Orda da adres olarak örnek "~/images/resim1" olarak yol belirttim..baska bisey yapmama gerek varmı..projeyi calıstırdıgımda div in icindeki image ikonu kück resim halinde geliyo yani resim yok seklinde...
    • Düzenleyen Uğur Gül 16 Aralık 2012 Pazar 02:52
    16 Aralık 2012 Pazar 01:24

Yanıtlar

  • veritabanına resim yolunu ~/images/resim.jpg yada ../images/resim.jpg şeklinde kaydetme , veritabanındaki resim yolu kaydın images/resim.jpg ibaret olsun, sonrasında projende resimi çekeceğin sayfanla resimler olduğu klasörde dizin farkını varsa bunju kapatırsın yoksa zaten veritabanındaki veri ile resmi gösterebilirsin, örnekleyecek olursak, 

    veritabanındaki kaydın : images/resim.jpg olsun

    Default.aspx  sayfasına resim çekeceksin, bu sayfada root dizinde images klasörü ile aynı dizinde olsun ;
    images
    Default.aspx            

    gibi bir görüntün olsun solution explorerda , o zaman veritabanındaki verini direk çekerek resmi gösterebilirsin, <%#Eval("ResimYolu") %>  yazarak sadece, 

    ama klasör dizinin farklı ise şöyle;

    images
    sayfalar>Default.aspx    gibi ise sayfandan resimlere ulaşabilmen için bir dizin dışarıdaki images klasörüne bakman lazım , bunun içinse 

    <%# "../" + Eval("ResimYolu")%>   şeklinde yazman gerekir, bu böyle devam eder eğer dizinin

    images

    Sayfalar>Anasayfa>Default.aspx           gibi bir yapıda ise <%# "../../" + Eval("ResimYolu")%>    yazman gerekir gibi, yani ../ ile resimlerin bulunduğu klasöre yönlendirmelisin sayfanı

    ve ayrıca resimi images klasörünün içine kaydettiğin adla yüklediğinden emin ol
    • Yanıt Olarak İşaretleyen Uğur Gül 20 Aralık 2012 Perşembe 23:29
    18 Aralık 2012 Salı 09:18
  • Resimlerini Veritabanına Eklersen bir generic Handler Eklemelisin Sebebi ise aynı isteği birden fazla yerde yapmak isteyebilirsiniz. Aşağıdaki Kodu İncelerseniz Generik Handlere gelen Idye Göre Geriye Bir Resim Gönderdiğini Göreceksiniz.

    aspx tarafında : <asp:Image ID="Image1" runat="server" Width="130" Height="130" ImageUrl='<%#"/getThump.ashx?id=" +Eval("StokId") %>' ToolTip='<%# Eval("StokAd") %>' />

    Çağırabilirsiniz

     public void ProcessRequest(HttpContext context)
            {
                try
                {
                    string id = context.Request.QueryString["id"];
                    context.Response.ContentType = "image/jpeg";

                    Stream strm = ShowEmpImage(id);
                    byte[] buffer = new byte[4096];
                    int byteSeq = strm.Read(buffer, 0, 4096);
                    while (byteSeq > 0)
                    {
                        context.Response.OutputStream.Write(buffer, 0, byteSeq);
                        byteSeq = strm.Read(buffer, 0, 4096);
                    }


                }
                catch (Exception)
                {

                    context.Response.WriteFile("~/images/noImage.jpg");

                }
            }
            public Stream ShowEmpImage(string id)
            {
                try
                {
                    var db = new FirsatDataContext();
                    var q = (from u in db.Tbl_Images where u.StokId == Convert.ToInt32(id) select u).FirstOrDefault();
                    return new MemoryStream(q.bigImage.ToArray());


                }
                catch (Exception)
                {
                    return null;

                }
            }

    Faydalı Olması Dileğimle.


    Sancak

    • Yanıt Olarak Öneren Bülent BAŞARAN 18 Aralık 2012 Salı 22:19
    • Yanıt Olarak İşaretleyen Uğur Gül 20 Aralık 2012 Perşembe 23:30
    18 Aralık 2012 Salı 22:18

Tüm Yanıtlar

  • Selam,

    Sayfaya sağ tıklayıp <img src= 'sini kontrol et.

    Birde, eğer "images" klasorun root 'ta ise "~/images/resim1" yerine "/images/resim1"  kullan.


    "Basitçe açıklayamıyorsan eğer, yeterince anlayamamışsındır." Alb. Einstein
    Fırsatlar Dünyası - Windows Market Uygulaması
    http://www.tiravoglu.com

    16 Aralık 2012 Pazar 01:59
  • img src de herhangi bi sıkıntı yok gibi..dediginiz gibi bi tanesini tilde siz yaptım yine olmuyo.Sql erver taraflı bi sıkıntı var gibi ama..sadece ResimAdres diye bi kolonum var resim icin onda da yol gösteriyo..baska bi sey yapmama gerek varmı acaba server taraflı...
    16 Aralık 2012 Pazar 02:19
  • resim1 sonuna .(png veya jpg)uzantsını da yazmarak dene
    16 Aralık 2012 Pazar 11:27
  • uzantısı yazılı..serverdan resimleri görmüyo..failed load hatası veriyo src de..
    16 Aralık 2012 Pazar 11:54
  • Yardımlarınızı bekliyorum...
    16 Aralık 2012 Pazar 12:05
  • veritabanına resim yolunu ~/images/resim.jpg yada ../images/resim.jpg şeklinde kaydetme , veritabanındaki resim yolu kaydın images/resim.jpg ibaret olsun, sonrasında projende resimi çekeceğin sayfanla resimler olduğu klasörde dizin farkını varsa bunju kapatırsın yoksa zaten veritabanındaki veri ile resmi gösterebilirsin, örnekleyecek olursak, 

    veritabanındaki kaydın : images/resim.jpg olsun

    Default.aspx  sayfasına resim çekeceksin, bu sayfada root dizinde images klasörü ile aynı dizinde olsun ;
    images
    Default.aspx            

    gibi bir görüntün olsun solution explorerda , o zaman veritabanındaki verini direk çekerek resmi gösterebilirsin, <%#Eval("ResimYolu") %>  yazarak sadece, 

    ama klasör dizinin farklı ise şöyle;

    images
    sayfalar>Default.aspx    gibi ise sayfandan resimlere ulaşabilmen için bir dizin dışarıdaki images klasörüne bakman lazım , bunun içinse 

    <%# "../" + Eval("ResimYolu")%>   şeklinde yazman gerekir, bu böyle devam eder eğer dizinin

    images

    Sayfalar>Anasayfa>Default.aspx           gibi bir yapıda ise <%# "../../" + Eval("ResimYolu")%>    yazman gerekir gibi, yani ../ ile resimlerin bulunduğu klasöre yönlendirmelisin sayfanı

    ve ayrıca resimi images klasörünün içine kaydettiğin adla yüklediğinden emin ol
    • Yanıt Olarak İşaretleyen Uğur Gül 20 Aralık 2012 Perşembe 23:29
    18 Aralık 2012 Salı 09:18
  • Resimlerini Veritabanına Eklersen bir generic Handler Eklemelisin Sebebi ise aynı isteği birden fazla yerde yapmak isteyebilirsiniz. Aşağıdaki Kodu İncelerseniz Generik Handlere gelen Idye Göre Geriye Bir Resim Gönderdiğini Göreceksiniz.

    aspx tarafında : <asp:Image ID="Image1" runat="server" Width="130" Height="130" ImageUrl='<%#"/getThump.ashx?id=" +Eval("StokId") %>' ToolTip='<%# Eval("StokAd") %>' />

    Çağırabilirsiniz

     public void ProcessRequest(HttpContext context)
            {
                try
                {
                    string id = context.Request.QueryString["id"];
                    context.Response.ContentType = "image/jpeg";

                    Stream strm = ShowEmpImage(id);
                    byte[] buffer = new byte[4096];
                    int byteSeq = strm.Read(buffer, 0, 4096);
                    while (byteSeq > 0)
                    {
                        context.Response.OutputStream.Write(buffer, 0, byteSeq);
                        byteSeq = strm.Read(buffer, 0, 4096);
                    }


                }
                catch (Exception)
                {

                    context.Response.WriteFile("~/images/noImage.jpg");

                }
            }
            public Stream ShowEmpImage(string id)
            {
                try
                {
                    var db = new FirsatDataContext();
                    var q = (from u in db.Tbl_Images where u.StokId == Convert.ToInt32(id) select u).FirstOrDefault();
                    return new MemoryStream(q.bigImage.ToArray());


                }
                catch (Exception)
                {
                    return null;

                }
            }

    Faydalı Olması Dileğimle.


    Sancak

    • Yanıt Olarak Öneren Bülent BAŞARAN 18 Aralık 2012 Salı 22:19
    • Yanıt Olarak İşaretleyen Uğur Gül 20 Aralık 2012 Perşembe 23:30
    18 Aralık 2012 Salı 22:18
  • Ellerinize saglık cok tesekkürler....
    20 Aralık 2012 Perşembe 23:30