« Geri
Yorumlar
Makaleyi Sakla
Arkadaşıma Gönder
Yazdır
| Yazar |
: Sem GÖKSU |
| Okunma Sayısı |
: 13633 |
| Tarih |
: 16.04.2007 09:29:18 |
| Kategori |
: ASP.NET |
| Konu |
: ASP.NET Multi Upload |
| Açıklama |
: File upload kontrolü bazen tek başına yetmez. Yani tek dosya upload’u bizim için yeterli olmaz. Birden fazla dosya upload etmek istediğimizde bunu tek tek yapmak bizim için oldukça zor olur. Hele upload edilecek dosya sayısı belli değilse yada değişkense. Bu makalemizde web sitelerinde çok sık kullandığımız file upload kontrolünü genişleterek Multi Upload kontrolü oluşturacağız. |
ASP.NET Multi Upload
Merhaba arkadaşlar, bu makalemizde web sitelerinde çok sık kullandığımız file upload kontrolünü genişleterek Multi Upload kontrolü oluşturacağız.
File upload kontrolü bazen tek başına yetmez. yani tek dosya upload’u bizim için yeterli olmaz. Birden fazla dosya upload etmek istediğimizde bunu tek tek yapmak bizim için oldukça zor olur. Hele upload edilecek dosya sayısı belli değilse yada değişkense...
Burada biz kendi çözümümüzü geliştirmeliyiz. Ben de bu makale de size kendi geliştirmiş olduğum çözümü anlatacağım. Bunu nasıl yapacağız?
Runtime’da sayfamıza file upload kontroller ekleyerek bu işlemi gerçekleştirebiliriz.
protected void Page_Load(object sender, EventArgs e) { FileUpload myFileUpload = new FileUpload();
myFileUpload.ID = "Upload_Dosyasi"; this.form1.Controls.Add(myFileUpload); } |
Bu kod sayfa açıldığında formumuza formupload kontrolü ekleyecek.

Evet tek bir kontrolü eklemek istediğimizde bunu yapmak yukarıdaki kadar kolay. Şimdi bu işlemi çoklu upload için yazalım.
İlk olarak sayfamıza bir adet
- Panel(upload kontrolleri bu panele ekleyeceğiz),
- DropDownList(Kaç adet File Upload kontrolü sayfamıza eklenecek bunu belirleyecek ben item olarak 3,5,7,10 ekledim)
- Button(File Upload kontrolünde seçilen dosyaları upload edecek)
Benim oluşturduğum sayfa aşağıdaki gibidir;

Sayfamız ilk açıldığında default olarak 10 adet file upload kontrolü eklensin.
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 1; i <= 10; i++)//10 kere dön
{
FileUpload myFileUpload = new FileUpload();
myFileUpload.ID = "Upload_" + i;
this.Panel1.Controls.Add(myFileUpload);
}
}
|
Evet şimdi projemizi çalıştıralım;

Sayfamıza 10 dan daha az yada daha fazla kontrol eklemek isteyebiliriz. Bunun için seçeceğimiz Dropdownda deçeceğimiz göre değişecek. İlk olarak Dropdownun AutoPostback özelliğini True yapalım. Şimdi gerekli kodları yazalım.
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
Panel1.Controls.Clear();
for (int i = 1; i <= Convert.ToInt32(DropDownList1.SelectedValue); i++)
{
FileUpload myFileUpload = new FileUpload();
myFileUpload.ID = "Upload_" + i;
this.Panel1.Controls.Add(myFileUpload);
}
} |
Projemizi tekrar çalıştıralım ve ve dropdowndaki değeri değiştirelim;

Evet 3 adet kontrol eklendi... Şimdi sayfamıza eklediğimiz kontroller için upload işlemini yapalım. Button’umuza tıklayalım;
FileUpload myFileUpload;
protected void Button1_Click(object sender, EventArgs e)
{
for (int i = 1; i <= Convert.ToInt32(DropDownList1.SelectedValue); i++)
{
myFileUpload = ((FileUpload)Panel1.FindControl("upload_" + i.ToString()));
if (myFileUpload.HasFile)
{
myFileUpload.SaveAs(Server.MapPath("images/"+myFileUpload.FileName));
Response.Write(i.ToString()+". Dosya "+ " Upload Edilen Dosya Adı:"+myFileUpload.FileName + "<br/>");
}
}
}
|
Evet şimdi isterseniz bunu test edelim;

Evet şimdi dosyalarımızı upload edelim...

İmage klasörü içine gidip upload kontrollere bakalım gerçekten eklemiş mi?

EVET 1.gif,2.gif ve 3.gif image klasörümüze eklendi...
Eğer 3 tane upload yetmediyse dropdowdan istediğimiz sayıyı seçelim ve istediğiniz kadar upload yapalım.
Bu makalenin de sonuna geldik, başka bir makalede görüşmek üzere başarı ve iyi günler dilerim.
Sem GÖKSU
MCP | MCAD.NET | MCTS
Örnek Kodlar için mail adresimi kullanabilirsiniz
semgoksu@semgoksu.com
Kaynaklar
http://msdn.co