-
Üyelik
19.02.2017
-
Yaş/Cinsiyet
28 / E
-
Meslek
Webmaster
-
Konum
İzmir
-
Ad Soyad
S** G**
-
Mesajlar
532
-
Beğeniler
159 / 159
-
Ticaret
1, (%100)
Herkese merhaba,
C# ile bir uygulama geliştirmekteyim. Bu uygulumada bir kayıt ile birlikte kullanıcı birden çok veya sayısız resim ekleyebilecek ve veritabanına da kaydedilecek bir yöntem arıyorum. OpenfileDiaglog 'u oluşturduğumla kaldım. Şu yöntemi bulamazsam max 5 resim ekletecem. (5 openfiledialogla)
Araştırma yaptım net bir sonuç yok. Kod olmasa bile bu işi nasıl yapabileceğime dair bir fikri olan veya kaynak gösterebilecek biri var mı acaba?
-
Üyelik
05.10.2016
-
Yaş/Cinsiyet
38 / E
-
Meslek
Yazılım Uzmanı
-
Konum
İstanbul Avrupa
-
Ad Soyad
H** B**
-
Mesajlar
187
-
Beğeniler
8 / 49
-
Ticaret
2, (%100)
Tam anlamıyla anlayamadım,
Bildiğin üzere OpenFileDialog nesnesine ait MultiSelect özelliği var, bu özelliğin default değeri false eğer true yaparsan çoklu dosya seçebilirsin. Daha sonra OpenFileDialog içerisinde bulunan FileName özelliğinde herhangi bir döngü ile seçilen dosyaları alabilirsin.
Almış olduğun dosyaları veritabanına kayıt ederken bir kaç farklı yol var, fakat DB tarafına göre seçim yapmalısın.
1- Eğer görselleri DB tarafında binary yada image olarak tutacaksan, dosyaları byte olarak gönderebilirsin.
2- Forms Application yazdığın için, dosyaları FTP ye upload edip, dosya pathlerini DB ye insert edebilirsin.
-
Üyelik
19.02.2017
-
Yaş/Cinsiyet
28 / E
-
Meslek
Webmaster
-
Konum
İzmir
-
Ad Soyad
S** G**
-
Mesajlar
532
-
Beğeniler
159 / 159
-
Ticaret
1, (%100)
Öncelikle cevabınız için teşekkür ederim hocam. Evet demek istediğimi anlamışsınız 1 openfiledialog ile birden çok resimi seçip yollarını veritabanına aktarmak istiyorum ve bir şekilde onları veritabından çekip imagelist ile göstermek istiyorum.
Sizin anlattıklarınızı anladım. Fakat ben FTP'ye değil de programın alt klasörlerine resimleri ve dosyaları yüklemeyi düşünüyorum.
Ve asıl takıldığım nokta bu aldığım resim yollarını nasıl ayrıştırıp veritabanında tek sütuna ekleyip, daha sonra nasıl bunları veritabanından ayrıştırıp çekecem. Dizileri kullanarak yapılabilir diye düşündüm ama ne kadar stabil olur bilmiyorum.
Şuan uğraşmaktayım ama uzun yöntemler var kafamda. Sizlerin de fikrini almak istedim. Tekrardan teşekkür ederim. İyi çalışmalar.
-
Üyelik
05.10.2016
-
Yaş/Cinsiyet
38 / E
-
Meslek
Yazılım Uzmanı
-
Konum
İstanbul Avrupa
-
Ad Soyad
H** B**
-
Mesajlar
187
-
Beğeniler
8 / 49
-
Ticaret
2, (%100)
Eğer programın single client olacaksa,
Application.StartupPath sana exe nin çalıştığı klasörü verir. Bu klasör içerisinde Resimler klasörü açıp, OpenFileDialog.FileNames özelliğinde bulunan dosyaları File sınıfını kullanarak Resimler klasörüne kopyalayabilirsin. Her dosyayı kopyalarken unique bir dosya ismi oluşturman tercih sebebidir. Her dosya kopyalama işleminde oluşan yeni dosya isimlerini bir list içerisinde tutup, DB kayıt esnasında bunları join ile birleştirip tek bir string elde edebilirsin. Böyle DB ye kayıt işlemi gerçeleştirip, resimler, kullanmak istediğinde aynı sütundan bilgileri çekerek istediğin control yada controller içerisinde kullanabilirsin.
Sıralama Olarak:
1-OpenFileDialog Dosya yada Dosyalar Seçildi Mi ?
2-Seçilmiş ise Application.StartupPath içerisinde Resimler Klasörü Var Mı ? Yoksa oluştur
3-Herhangi bir döngü ile OpenFileDialog.FileNames içerisinde dolaş, her bir dosyayı FileStream ve File ile yeni bir isim ile 2.Adımdaki resimler klasörüne kopyala, dosya ismini bir listeye ekle
4-Döngü sonlandığında dosya isimlerinin bulunduğu listeyi join ile birleştirip tek bir string elde et.
string resimler = Array.Join("|",dosyaIsimleri);
resimler değişkenini db ye gönderebilirsin. seperatör olarak | (Alt GR + Z nin solundaki tuş) simgesini kullandık. Resimlere ihtiyacın olduğunda bu seperatörü kullanarak split edip kullanabilirsin.