Forum

Resim upload ederke...
 
Bildirimler
Hepsini Temizle

Resim upload ederken aynı isimde dosyanın bulunması sorunu

6 Yazılar
3 Üyeler
0 Reactions
859 Görüntüleme
(@HuseyinTopcu)
Gönderiler: 111
Estimable Member
Konu başlatıcı
 

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'>&times;</button> Resim boyutu büyük.</div>";

            }

            return dosyaYolu;

        } 

 
Gönderildi : 25/01/2015 17:25

(@yavuzcingoz)
Gönderiler: 36
Eminent Member
 

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.

 
Gönderildi : 30/01/2015 14:56

(@HuseyinTopcu)
Gönderiler: 111
Estimable Member
Konu başlatıcı
 

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.

 
Gönderildi : 30/01/2015 22:01

(@eravse)
Gönderiler: 1753
Üye
 

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

 
Gönderildi : 30/01/2015 23:51

(@HuseyinTopcu)
Gönderiler: 111
Estimable Member
Konu başlatıcı
 

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?)

 
Gönderildi : 01/02/2015 14:39

(@eravse)
Gönderiler: 1753
Üye
 

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

 
Gönderildi : 01/02/2015 15:20

Paylaş: