ASP ile resim upload ve thumbnail oluşturmak..( Persits.upload ve Persits.Jpeg ile )
Merhaba .
Bu makalede ASP de örnek bir uygulama ile servera resim upload etme ve bu resimleri thumbnail olarak kaydetmeyi yapacağız. Bu uygulamanın çalışması için Sunucunuzda ya da kendi bilgisayarınızda
Persits.upload ve
Persits.Jpeg Bileşenlerinin kurulu olması gerekir.
Örnek uygulamamızın senaryosuna göre sitemize bir Photo Galeri yapıyor olacağız ve bu Photo Galerinin resimleri sitenin yönetim panelinden ekleniyor olacak. Resimler istediğimiz bir Klasöre Upload edilecek ve her resmin birde Thumbnali (Küçük resim ön izlemesi ) oluşturulup o da başka bir klasöre upload edilcek .Upload edilen resimlerin yolu da Access veri tabanında saklanacak.
Bu işlemler yapılırken site yöneticisinin upload etmeye çalıştığı resmin buyotları ne olursa olsun resim orantılı olarak küçültülecek.
Öncelikle Veri tabanımızı görelim :

Form sayfamız :
form.asp
<body>
<form action="form_islem.asp" method="post" enctype="multipart/form-data" name="form1" id="form1">
<label>
<input type="file" name="file1" id="file1" />
</label>
<label>
<input type="submit" name="button" id="button" value="Submit" />
</label>
<input type="input" name="res_adi" id="res_adi" />
</form>
</body>
Görüldüğü gibi basit bir form yaptık. Ancak bu formun diğer formlardan önemli bir farkı var o da sarı renk arka plan ile belirtilen fromun enctype tipi . dosya upload yapılacak edilecek fomların enctype alanı multipart/form-data olmalıdır.!!!!!
Fomumuzda
bir adet file nesnemiz : Resmi kendi PC mizden seçmek için
bir adet inputumuz (zorunlu değil): Uplad edilecek resme bir isim vermek için ben koydum .
ve bir adet de buttonumuz var ve sayfanın post edileceği sayfa da fom_islem.asp .
Şimdi de asıl önemli olan sayfamıza yani fom_islem.asp sayfamıza geldik.
form_islem.asp
<body>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("ornek.mdb")
randomize
ilhan=int(rnd*9999)+1
set upload=Server.CreateObject("Persits.upload")
upload.save
For Each File in Upload.Files
If File.ImageType="UNKNOWN" then'If File.ImageType<>"GIF" then sadece gif olan resim dosyalarini upload eder
Response.Write"Sadece resim dosyasi ekleyebilirsiniz"
Response.end
end if
next
set file=upload.files("file1")
adi=File.ExtractFileName
file.saveas Server.MapPath("images/"&ilhan&"_"&adi)
Set Jpeg = Server.CreateObject("Persits.Jpeg") '
Jpeg.Open( Server.MapPath("images/"&ilhan&"_"&adi) ) 'Sayfa adres yerinde resmin adresi
ebat = 150
If Jpeg.OriginalHeight > Jpeg.OriginalWidth Then 'Eğer boyu eninden uzunsa
Jpeg.Width = ebat 'Enini istediğimiz boyuta getiriyoruz.
Jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth
kenarpayi = Round(Int((Jpeg.Height-ebat)/2)).
Jpeg.Crop 0, kenarpayi, ebat, ebat+kenarpayi
Else ' Boy-en eşit yahut en daha uzunsa...
oran=Jpeg.Width/300
Jpeg.Width = 300
Jpeg.Height = Jpeg.Height/oran
End if
Jpeg.save(Server.MapPath("images2/"&ilhan&"_"&adi))
Jpeg.Open( Server.MapPath("images/"&ilhan&"_"&adi) )
ebat = 200
If Jpeg.OriginalHeight > Jpeg.OriginalWidth Then
Jpeg.Width = ebat
Jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth
kenarpayi = Round(Int((Jpeg.Height-ebat)/2))
Jpeg.Crop 0, kenarpayi, ebat, ebat+kenarpayi
Else ' Boy-en eşit yahut en daha uzunsa...
oran=Jpeg.Width/500
Jpeg.Width = 640
Jpeg.Height = Jpeg.Height/oran
End if
Jpeg.save(Server.MapPath("resim/"&ilhan&"_"&adi))
res_adi=Upload.Form("res_adi")
set rs=Server.CreateObject("Adodb.Recordset")rs.Open "select * from resimler",Connect,1,3
rs.addnew
rs("res_adi")=res_adi
rs("resim")=ilhan&"_"&adi
rs.update
id=rs("resim")
set fs=Server.CreateObject("Scripting.FileSystemObject")
If (fs.FileExists(Server.Mappath("/")&"/resim_upload2\images\"&id))=true Then
set f=fs.GetFile(Server.Mappath("/")&"/resim_upload2\images\"&id)
f.Delete
end if
set fs=nothing
Response.Redirect("goster.asp")
%>
</body>
Kolay Gelsin