En iyi yanıtlayıcılar
RESİM

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
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 dizininimages
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
-
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
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- Yanıt Olarak Öneren peteksu yıldız 8 Eylül 2013 Pazar 18:39
-
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ı...
-
-
-
-
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 dizininimages
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
-
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
-