Asp.net projelerimizde kimi zaman fileupload nesnesi ile sunucuya resim yükleme islemleri yapariz , yaptiririz.Kullanicinin yükledigi resim boyutlarini bilemeyiz tabiki.Bu durumda karsimiza farkli sorunlar çikabilior.Örnegin yüklenen resim boyutu çok fazla olabilir ve sunucuya ek bir yük getirebilir , yüklenen resim boyutlari sizin tasariminiza uygun olmayabilir vs..Böyle durumlarda yüklenen resimleri boyutlandirip o sekilde kaydetmek gerekir.
Gerekli kodlarimiz :
Imports System.IO
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 = ""
Dim uzanti As String = ""
Dim dosyaIcerik As Byte() = FU.FileBytes
Dim dosyaTipi As String = FU.PostedFile.ContentType
Dim resimdizin As String = "Resimler/"
Dim resimdizin2 As String = "Resimler/Orjinal/"
If FU.HasFile Then
Dim rastegele As New Random()
Dim numara As Integer = rastegele.Next(1, 999999999)
uzanti = Path.GetExtension(FU.PostedFile.FileName)
resimadi = "Picture" + numara.ToString
'resimadi = "Picture_" + DateTime.Now.Day.ToString + "-" + DateTime.Now.Month.ToString + "-" + DateTime.Now.Year.ToString + " " + DateTime.Now.Minute.ToString + DateTime.Now.Millisecond.ToString
'FU.SaveAs(Server.MapPath("Resimler/sahte" + uzanti));
FU.SaveAs(Server.MapPath("Resimler/Orjinal/" + resimadi + uzanti))
Dim bmp As New Bitmap(Server.MapPath("Resimler/Orjinal/" + resimadi + uzanti))
Using OrjinalResim As Bitmap = bmp
Dim ResYukseklik As Double = 77
Dim ResGenislik As Double = 108
Dim yenidegerler As New Size(Convert.ToInt32(ResGenislik), Convert.ToInt32(ResYukseklik))
Dim yeniresim As New Bitmap(OrjinalResim, yenidegerler)
yeniresim.Save(Server.MapPath("Resimler/" + resimadi + uzanti))
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("resim.mdb"))
Dim cmd As New OleDbCommand("Insert Into ResimEkle (ResimAdi , ResimUrl ,OrjinalUrl, 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()
End Sub
End Class
Örnek çalismayi buradan indirebilirsiniz...