http://yfrog.com/2oclipboard01tvj adresindeki jpg'deki gibi basit bir formum var. içinde resim uploadı da barındırdığı için "ENCTYPE="multipart/form-data"" da var form tagında. ancak bu şekilde "baslik" ve "metin" verilerini kullanamıyorum. resmi istediğim yere upload edecek ve başlık ve metin verileri de sadece ekrana yazdıracak bir "isle.asp" dosyası nasıl olmalıdır?
not: Passing variables when using enctype multipart/form-data şeklinde google'da yaptığım aramalarda sonuçlar çıkıyor ama çalıştıramıyorum nedense. atladığım biryerler var sanki ama bulamadım.
(not: bu soruma cevap bulabilirsem elimde bulunan parça parça kodlar ve açıklamalar ile debelenip dosya adı değiştirmeyi de bulabileceğimi düşünüyorum ancak cevap yazarken bir de resim dosyasının adını nasıl herhangi bir şekilde değiştirebileceğimi yazarsanız 3-5 saatlik bir uğraştan kurtarırsınız beni)
saygılarımla.
form ile dosya upload+variable gönderimi nasıl yaparım?
8
●1.363
- 29-09-2010, 11:59:11
- 29-09-2010, 12:42:59şu form kodum:
<form method="POST" enctype="multipart/form-data" action="isle.asp"> <p>Haber Başlığı: <input type="text" name="baslik" size="43"></p> <p>Haber Resmi: <input type="file" name="resim" size="20"></p> <p>Haber Metni: <textarea rows="10" name="metin" cols="56"></textarea></p> <p><input type="submit" value="Gönder" name="B1"></p> </form>
upload kodum ise;
request.querystring("baslik")
request.querystring("metin")
şeklinde baslik ve metin bilgilerini almaya çalışıyorum. geriye kalanı ise standart aspupload kodları, gelen dosyayı al şuraya koy şeklinde. ama enctype bilgisi olduğu için request.querystring'ler görmezden geliniyor. aspupload kodum ise
Set Upload = Server.CreateObject("Persits.Upload.1") Upload.Save server.MapPath("resimler") For Each File in Upload.Files dosya = file.filename Nextşeklinde. bu şekilde resimler klasörüne gönderilen dosyayı upload edebiliyorum. ama benim derdim, hep kopyalama, hem de metin ve baslik bilgilerini db.ye yazdırmak. tek formla yapamaz mıyım bunu? - 29-09-2010, 13:00:59çok teşekkürler hocam. demek ki request.form'la almak yerine upload.form'la almak gerekiyormuş.
ben şimdi önceki çalışmalarımdaki parça parça kodlar içinden, aspindir sitesinden ve aspupload ve aspjpeg sayfalarından faydalanarak;
1. aldığım dosyanın resim olup olmadığına bakacağım
2. resimse önce kendi belirlediğim bir isim vereceğim. mesela zaman. 2010_09_29_12_56.jpg gibi.
3. sonra resmi belirlediğim boyutlara getireceğim büyükse de küçükse de.
yalnız bunlar benim için biraz uzun sürecek. sizin için eminim birkaç dakikalık iştir. bunları da upload kodu içinde yazarsanız benim için çok memnun olurum, büyük bir yükten kurtarırsınız beni.
çok teşekkürler. - 29-09-2010, 13:30:04hocam canın sağolsun
araştırıyorum an itibariyle hala da parça parça olması hoş değil, toparlamak zor oluyor. konuyu izleyen arkadaşlar için yardımı dokunur diye yazıyorum:
http://support.persits.com/show.asp?code=PS02041192 sayfasında isim nasıl değiştirilir, iki farklı şekilde anlatılmış, uygulamaya çalışıyorum.
boyutlandırmayı ise
Jpeg.OriginalHeight
Jpeg.OriginalWidth
ile yaptığım kodlarım var. bunları kendi kodumun içine sokmaya da çalışacağım isim değiştirmeyi becerdikten sonra.
devamında ise
For Each File in Upload.Files If FILE.EXT<>".jpg" then If FILE.EXT<>".jpeg" then If FILE.EXT<>".png" then If File.ImageType="UNKNOWN" Then Response.Write "Lütfen JPG veya PNG formatında resim yükleyiniz." Response.End End If End if End if End if Nextşeklinde uzantıya bakan işlemi de ekleyeceğim. ama işi bilen bi arkadaştan hepsini birden almak daha stabil olurdu.
tekrar teşekkürler. - 29-09-2010, 13:43:34Üyeliği durduruldu
' transfer ettiğimiz dosyayı isimlendirirken dosya adına günün tarihini iliştirmesi için aşama oluşturuyoruz... ' dosyayı transfer ettikten sonra bu verileri kullanacağız. cpr1 : tarih, cpr2 : ay, cpr3 : gün cpr1=Year(date) ' tarih için Yılı öğrendik if month(date) < 10 then ' eğer ay 10 rakamından küçükse başına 0 ekledik cpr2 = "0" & month(date) else cpr2 = month(date) ' değilse ayı olduğu gibi aldık end if if Day(date) < 10 then ' eğer gün 10 rakamından küçükse başına 0 ekledik cpr3 = "0" & Day(date) else cpr3 = Day(date) ' değilse günü olduğu gibi aldık end if ' tarih oluşturma bölümü bitti Randomize Numara = INT (RND*9999999999)+1 ' Rastgele otomatik sayılar ürettiriyoz. Server.ScriptTimeout=1000 Set Upload = Server.CreateObject("Persits.Upload.1") Upload.OverwriteFiles = False DosyaKontrol = Upload.SaveToMemory If DosyaKontrol = 0 Then Response.Write "Lütfen yüklemek üzere bir dosya seçiniz..." Response.End End If For Each File in Upload.Files If FILE.EXT<>".rar" then 'bu tip dosyalara müsaade veriyoruz If FILE.EXT<>".zip" then If FILE.EXT<>".doc" then If FILE.EXT<>".xls" then If FILE.EXT<>".pdf" then If FILE.EXT<>".flv" then If File.ImageType="UNKNOWN" Then 'biraz önce müsaade verdiklerimizin dışında bütün resim formatlarını kabul ediyoruz. Response.Write "Yüklemek istediğiniz dosya türüne müsaade verilmemiş / yasaklanmış..." Response.End End If End if End if End if End if End if End if Next Set dosya = Upload.Files ("dosya")'<input class="form" type="file" name="dosya" size="35"> buradaki name="dosya" ismi ne ise Upload.Files ("") içine yazıyoruz. dosyaadi = cpr1&cpr2&cpr3&"_"&Numara&Right(dosya.FileName,4) Path = Server.MapPath(dosyanuyeri/" & dosyaadi) dosya.SaveAs Path Set Jpeg = Server.CreateObject("Persits.Jpeg" ) Jpeg.Open Path Jpeg.Width = 600 jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth Jpeg.Canvas.Brush.Solid = False Path2 = Server.MapPath(dosyayeri/" & dosyaadi) Jpeg.Save Path2 - 29-09-2010, 15:21:29teşekkürler. kodda bazı problemler mevcut, ben kendimde çözdüm ancak başlarda bir dosyayeri değişkeniyle klasör belirtilmesi gerekiyor. bi de altlarda dosyanuyeri olan yer dosyayeri olarak düzeltilecek. onun dışında işime çok yaradı upload.form("formadi") şeklindeki olayla birlikte.
cpr1...4'lü ve NUMARA değişkenli sistem yerine ise yılaygüngünadisaatdakikasaniye şeklinde bir dosya ismi kullanıyorum, istenirse başına dosyanın kendi adı da eklenebilir. konuyu izleyen arkadaşlar için ekliyorum onu da aşağı. tekrar teşekkürler arkadaşlar.
yil = year(now) : ay = month(now) : gun = day(now) : gunadi = weekday(weekday(date)) : saat = Hour(Now) : dakika = Minute(Now) : saniye = Second(Now) if ay < 10 then : ay1 = 0 & ay : else : ay1 = ay : end if if gun < 10 then : gun1 = 0 & gun : else : gun1 = gun : end if if saat < 10 then : saat1 = 0 & saat : else : saat1 = saat : end if if dakika < 10 then : dakika1 = 0 & dakika : else : dakika1 = dakika : end if if saniye < 10 then : saniye1 = 0 & saniye : else : saniye1 = saniye : end if zaman = yil&ay1&gun1&gunadi&saat1&dakika1&saniye1 dosyaadi = zaman&".jpg" 'zaten aspjpeg kullanarak jpege çevirdiğim için böyle kullandım. 'dosyanın kendi uzantısını kullanmak isteyen arkadaşlar 'dosyaadi = zaman&file.ext kullanabilirler.
vermiyecem kodları sen araştırıp bulup yapıcaksın : )))
araştırıyorum an itibariyle hala da parça parça olması hoş değil, toparlamak zor oluyor. konuyu izleyen arkadaşlar için yardımı dokunur diye yazıyorum: