lostyazilim
tr.link

C# Application ile çoklu resim kaydı?

5 Mesajlar 1.444 Okunma
acebozum
tr.link

HelloWorld01 HelloWorld01 WM Aracı Kullanıcı
  • Ü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?
 

 

elektronikssl
webimgo

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Ü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.
 

 

HelloWorld01 HelloWorld01 WM Aracı Kullanıcı
  • Ü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.
 

 

SizofrenikDev SizofrenikDev WM Aracı Kullanıcı
  • Ü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.
 

 

wmaraci
wmaraci

HelloWorld01 HelloWorld01 WM Aracı Kullanıcı
  • Ü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)
ŞizofrenikDev Yöntem güzel aklımda birşeyler oluşmaya başladı. Birazdan uygulayacam. Cevabınız için teşekkür ederim hocam. İyi forumlar.
 

 

Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al