Tüm inananların Miraç Kandilini kutlarım. İnşallah hayır dualarınızda bizide hatırlarsınız !…

10.08.2007 17:51:00 991 Okunma Yorum Yazılmamış Devam

 

<table>
<tr>
<td nowrap><b>Dosyayı Seçiniz:</b></td>
<td><input type="file" id="dosya" name="dosya" runat="server" class="alan"></td></tr>
<tr>
<td height="45″ colspan="2″></td></tr>
<tr>
<td colspan="2″ align="center">
<asp:button runat="server" id="UploadButonu" Text="SUNUCUYA YÜKLE" onClick="DosyaUpload" CssClass="buton" /></td>
</tr>
</table>

 

ile resimdeki sayfa görüntüsünü elde ediyoruz. Daha sonra kod tarafına geçiyoruz.

Protected Sub DosyaUpload(ByVal sender As Object, ByVal e As System.EventArgs) Handles UploadButonu.Click
If Not (dosya.PostedFile Is Nothing) Then
Dim DosyaAdi As String = dosya.PostedFile.FileName.Substring(dosya.PostedFile.FileName.LastIndexOf("\") + 1)
Dim DosyaTipi As String = dosya.PostedFile.ContentType
Dim DosyaBoyutu As Integer = dosya.PostedFile.ContentLengthDim suzanti As String = Right(DosyaAdi, 4)
Dim uzanti As String
If suzanti <> "" Then
uzanti = suzanti
Else : uzanti = ".jpg"
End If
Dim r As String = Request.QueryString("r")
If DosyaTipi = "image/pjpeg" Or DosyaTipi = "image/bmp" Or DosyaTipi = "image/x-png" Or DosyaTipi = "image/gif" Then
'yükle
If DosyaBoyutu <= 0 Then
Response.Write("Hatalı dosya, upload yapılamadı: " + DosyaAdi)
Else
'önce resmi sunucuya yüklüyoruz
dosya.PostedFile.SaveAs(Server.MapPath("..\urunresim\" + r + uzanti))
Try
Dim alp As System.Drawing.Image = System.Drawing.Image.FromStream(dosya.PostedFile.InputStream)
Dim w As Integer = alp.Width
'yüklediğimiz resmin genişliğini alıyoruz
Dim h As Integer = alp.Height 
'yüklenen resmin yüksekliğini alıyoruz
Dim YeniGenislikB As Integer = 0
Dim YeniYukseklikB As Integer = 0
Dim YeniGenislikK As Integer = 0
Dim YeniYukseklikK As Integer = 0
'Sunucuya yüklediğimiz resimden bir büyük birde küçük resim oluşturacağız. Ben büyük resim için maksimum yükseklik veya genişlik 400, küçük resim içinde 75 piksek olsun istedim siz bunu kendinize göre uyarlarsınız. Buradaki algoritmamız şu genişlik ve yüksekliği kıyaslayıp orantılı değerler buluyoruz ki buda oluşan resimlerin orantılı olarak küçülmesi için. Yoksa resimler biçimsiz olabilir.

If w > h Then
'genişlik büyük
YeniGenislikB = 400
YeniYukseklikB = (400 * alp.Height) / alp.Width
YeniGenislikK = 75
YeniYukseklikK = (75 * alp.Height) / alp.Width
Else
YeniGenislikB = (400 * alp.Width) / alp.HeightYeniYukseklikB = 400
YeniGenislikK = (75 * alp.Width) / alp.HeightYeniYukseklikK = 75
End If
'aldığımız değerlere göre büyük resmi farklı kaydediyoruz
Dim alpBuyukResim As System.Drawing.Image = alp.GetThumbnailImage(YeniGenislikB, YeniYukseklikB, Nothing, IntPtr.Zero) 
alpBuyukResim.Save(Server.MapPath("..\urunresim\buyuk\" + r + uzanti))
'küçük resmi kaydediyoruz
Dim alpKucukResim As System.Drawing.Image = alp.GetThumbnailImage(YeniGenislikK, YeniYukseklikK, Nothing, IntPtr.Zero)
alpKucukResim.Save(Server.MapPath("..\urunresim\kucuk\" + r + uzanti))
'resimleri kaydettikten sonra veritabanına kayıt yada yapmak istediğiniz başka bir şey varsa yapabilirsiniz
'istediğimiz resimleri oluşturduğumuza göre ilk yüklediğimiz orjinal resime artık gerek kalmadı, onu uçurmakta vayda var
'siliyoruz
System.IO.File.Delete(Server.MapPath("..\urunresim\" + r + uzanti))
Catch ex As Exception
Response.Write(ex.Message)
End Try
End If
Else
Response.Write("sadece resim dosyası yükleyebilirsiniz")
End If
End If
End Sub 

Çok fazla karmaşaya girmeden basit bir şekilde resim upload ve resim thumnail oluşturmayı göstermeye çalıştım. Bu işlemleri yaptığınız klasörde yazma izni olması gerekmektedir. Anlayamadığınız yerleri sorabilirsiniz?

08.08.2007 17:15:00 1.844 Okunma 2 Yorum Devam
© 2009 Alptekin Bodur