Sitemize,veritabanimiza resim yükleme islemi gerçeklestirmek durumunda kalabiliriz... Bu durumda kullanici yükledigi resmi direk olarak alirsak eger; boyutlandirmada,yükseklik ve genisliginde sikintilar problemler olusabilir... Bu yüzden resmi kayit etmeden gerekli boyutlandirmalari gerçeklestirip en son haliyle veritabanimiza kaydetmemiz gerekiyor...
Örnek kullanim asagida gösterilmistir.
Imports System
Imports System.IO ' Namespacelerimizi Import ediyoruz...
Imports System.Data
Imports System.Drawing
Imports System.Data.OleDb
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
Dim resimadi As String = "" 'Degiskenlerimiz tanimliyoruz...
Dim uzanti As String = "" ' Degiskenlerimizi tanimliyoruz...
Dim dosyaIcerik As Byte() = FU.FileBytes ' FileUploand kontrolümüzün içerik boyut degerini dosyaIçerik degiskenine atiyoruz...
Dim dosyaTipi As String = FU.PostedFile.ContentType ' FileUploand kontrolümüzün içerik tipini (jpg,png,exe) dosya tipi degiskenine atiyoruz...
Dim resimdizin As String = "Resimler/" ' Resimler yolumuzu belirtiyoruz...
Dim resimdizin2 As String = "Resimler/Orjinal/" 'Orjinal Resimlerimizin kaydedilecegi yolu belirtiyoruz...
If FU.HasFile Then
uzanti = Path.GetExtension(FU.PostedFile.FileName) ' Uzantisini uzanti degiskenine atiyoruz(.jpg-.png-.exe)...
resimadi = "Picture" + DateTime.Now.Minute.ToString + DateTime.Now.Second.ToString ' Resim adimiza Picture ismini atiyoruz ve o onki dakka ve saniye saniye degerini ismimize ekliyoruz...
'FU.SaveAs(Server.MapPath("Resimler/sahte" + uzanti));
FU.SaveAs(Server.MapPath("Resimler/Orjinal/" + resimadi + uzanti)) ' Resimler/Orjinal klasörüne orjinal resmimizi kayit ediyoruz...
Dim bmp As New Bitmap(Server.MapPath("Resimler/Orjinal/" + resimadi + uzanti)) ' Orjinal resmimizi bmp bitmap degiskenimize atiyoruz...
Using OrjinalResim As Bitmap = bmp ' bmp degiskenindeki resmimizi Orjinal resim degiskenimize atiyoruz...
Dim ResYukseklik As Double = 77 ' Resim boyut degerlerimizi belirliyoruz...
Dim ResGenislik As Double = 108
Dim yenidegerler As New Size(Convert.ToInt32(ResGenislik), Convert.ToInt32(ResYukseklik)) ' Degerlerimizi yeni degerler degiskenimize atiyoruz...
Dim yeniresim As New Bitmap(OrjinalResim, yenidegerler) ' Yeni resim Bitmap degiskeni tanimlayip,resmimizi ve degerleri tanimliyoruz...
yeniresim.Save(Server.MapPath("Resimler/" + resimadi + uzanti)) ' ve resmimizi kayit ediyoruz...
yeniresim.Dispose()
OrjinalResim.Dispose()
bmp.Dispose()
'FileInfo fisahte = new FileInfo(Server.MapPath("Resimler/Orjinal" + uzanti));
'fisahte.Delete();
End Using
End If
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; data source=" + Server.MapPath("ResimEkle.mdb"))
Dim cmd As New OleDbCommand("Insert Into ResimEkle (ResimAdi , ResimUrl ,ResimUrl2, ResimTipi) Values(@resimadi, '" + resimdizin + resimadi + uzanti + "','" + resimdizin2 + resimadi + uzanti + "', @dosya_tip)", baglanti)
cmd.Parameters.AddWithValue("@resimadi", resimadi)
cmd.Parameters.AddWithValue("@dosya_tip", dosyaTipi)
baglanti.Open()
If cmd.ExecuteNonQuery() > 0 Then
lblbilgi.Text = "Dosya basariyla yüklendi"
End If
baglanti.Close()
' Burdada veritabanina kaydetme islemleri gerçeklesiyor...
End Sub
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
End Sub
End Class
Örnek çalismayi buradan indirebilirsiniz.