Forum
Arkadaşlar şöyle bir sorunum var: Resim yüklüyorum ancak resimlerin adı aynı olduğunda upload edilen ikinci resim ilk resmin üstüne yazıyor. Bu sorunu çözmek için resmin sonuna her upload edildiğinde iki üç haneli rastgele üretilmiş sayı ekliyorum böylece aynı isim olmuyor.
Ama resmin adı uzuyor bunu istemiyorum. Araştırmama rağmen olmadı. Çözüm için aklıma gelen 2 yol var:
Birinci yol resimlerin adı aynı ise resmin sonuna rakam ekleyecek (örnek resim1.jpg, resim2.jpg, ...)
İkinci yol ise dosyanın var olup olmadığını kontrol edecek varsa uyarı mesajı yazdırmak. Bu isimle dosya kayıtlıdır lütfen başka bir isimle değiştirin şeklinde. Kullandığım methot şu şekilde:
private string ResimKaydet()
{
string dosyaYolu = String.Empty;
if (fluVideoResim.HasFile && fluVideoResim.PostedFile.ContentLength <= 1048576 && fluVideoResim.PostedFile.ContentType.Contains("image"))
{
HttpPostedFile resim = fluVideoResim.PostedFile;
//string resimAdi = Guid.NewGuid() + resim.FileName.Substring(resim.FileName.LastIndexOf('.'));
Random r = new Random();
int sayi = r.Next(0, 1000);
// Get the extension of the uploaded file.
string fileName = Server.HtmlEncode(fluVideoResim.FileName);
string extension = System.IO.Path.GetExtension(fileName);
//fluHaberResim.Attributes.Add("FileName", sayi.ToString());
string cumle = fileName;
string[] dizi = cumle.Split('.');
string resimAdi = dizi[0] + sayi + extension;
dosyaYolu = "/resimler/videoresimleri/" + resimAdi;
fluVideoResim.SaveAs(Server.MapPath(dosyaYolu));
}
else
{
ltrBilgi.Text = "<div class='alert alert-error'> <button data-dismiss='alert' class='close' type='button'>×</button> Resim boyutu büyük.</div>";
}
return dosyaYolu;
}
Merhaba,
Aslında izlediğin 2 yol da hatalı. Gelen dosyanın adı ne olursa olsun, kendin yeni bir isim vermelisin. Guid kullanmanı şiddetle tavsiye ederim. Burada önemli olan, yüklenen resmi kullanıcı indirmek istediğinde orijinal dosya adını dönüp dönmeyeceğin. Eğer dosya indirilirken orijinal adıyla kaydedilsin istiyorsan, resmi yüklerken veri tabanında dosyanın orijinal adını ve senin ona verdiğin yeni adı tutmalısın.
Merhaba, teşekkür ederim. Aslında dediğiniz doğru bende guid ile benzersiz bir isim veriyordum ancak google görsel aramalarında da çıkmasını istdiğimden böyle bir yönteme yöneldim.
O zaman şöyle bir yöntem izleyin.
1- resme vereceğiniz alt tagını boşluklardan ve special karakterlerden temizleyin örn : merhaba-dunya-insanlari-guid.jpg
2 - Guid kısımına yeni bir guid verin
3 - save edin.
4 - alt tagını html tarafında koymayı unutmayın.
google algoritma olarak devamlı değişen bir yapıya sahip ama temel olarak alt taglarından ve image isimlerinden arama yapar ve indexler. siz alt tagında bulunan isimi dosya isminede yazarsanız en azından her hangi bir kısmına çözüme ulaşırsınız.
bu arada google aramaları işin içine girdiğinde bütün kelime ve yapılarınızın bir uzman analiz tarafından yönlendirilmesinde fayda olacaktır. Eğer resim isimlerini kullanıcıya bırakırsanız abuk sabuk isimler ile gelecektir. Sizin konsolidasyon işlemi yapmanız gerekecek ve mantıklı kelimeleri seçmek yada düzenlemek çok fazla vaktinizi alabilir.
saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Selamlar,
Tekrar teşekkür ederim. Son olarak bu şekilde yaptım.
Resmi boşluklardan ve özel karakterlerden temizlemeyi düşünmemiştim bunu önerdiğiniz iyi oldu.
İsim uzamasın diye guid yerine bir ile üç arasında rastgele sayı verdim ve alt tagını ekledim.
(Birde guid kullanmanın özel bir nedeni var mı? Neden herkes guid kullanıyor?)
Guid kullanmak cakismalari onler guid uniq yani eşsiz bir degerdir o yuzden guid tercih ediyoruz
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com