1.494 kez okundu

Asp de fileUpload kontrolu ile birden fazla resim yüklemek

10 10 1.494 kez okundu incelendi

En çok karşılaştığımız durumlardan birisi birden fazla fileupload kullanarak resim yüklemek. Kısaca bunu anlatmaya çalışacağım.

using System;

using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnResimleriYukle_Click(object sender, EventArgs e)
    {
        //sayfaya 10 tane fileUpload kontrolu ekliyoruz birde button kontrolu ekliyoruz.butona tıklandığı anda (btnResimleriYukle_Click) oalyında resimleri kaydedeceğiz.
        //httpfilekoleksiyon oluşturuyoruz gelen tüm resimleri bu koleksiyon içerisine atıcaz
         HttpFileCollection uploadedFiles = Request.Files;
        //gelenresim adedi kdar for döngüsü içersiinde dönüyorum
         for (int i = 0; i < uploadedFiles.Count; i++)
         {
             //dizi oluşturup her bir fileuploada ulaşıyorum.
             HttpPostedFile userPostedFile = uploadedFiles[i];

             // sıradaki fileuploda resim yüklenmişise kayıt yapılsın
             //10 tane fileupload koyduk diyelim kullanıcı 5 tanesine resim yükledi ozaman boş olanların içinde kaydedecek resim aramayalım boşuna :)
             if (userPostedFile.ContentLength > 0)
             {
                 //burada anahtaruret adlı metoda sırdakı fileuoploadın filename ini veriyorum kı gelen resimadında türkçe karakter yada  geçersiz bir karakter varsa temizlenip string tipinden gelenResimAdi adıdnan yenı bir ada sahip oluyor.
                 string gelenResimAdi = anahtaruret(userPostedFile.FileName);
                 //artık fileuploaddan aldığımız resimin dosyaadı gelenResimAdi oluyor ve bunu da benzersiz bir karakter üretsin(şifreli) diye makeMD5 metoduna sokuyorumve oradan değeri buyukResimAdi adında bir string yapıyorum.sonuna da dosya fiziksel olarak kaydedilirken uzantısının jpg olmasını sağlıyorum
                 string buyukResimAdi = makeMD5(gelenResimAdi) + ".jpg";
                 //artık resim dosyam hazır ve andizizinde images adlı bir kalsor oldugunu varsayıyor ve oraya fiziksel olarak kaydediyorum.
                 userPostedFile.SaveAs(Server.MapPath("~/urunimages/") + buyukResimAdi);
                 //resim bilgilerini database e yazmak istersek Resimler adında bir tablo hazırlayıp(sqlde) Id(int) ve ResimAdi(nvarchar(max)) adında bir kolon oluşturup c# tarafında string tipinden resimadı alan bir metoto yazıp metoda resimadi olarak  buyukResimAdi'nı verebilirz.
             }
         }


    }
    public static string anahtaruret(string key)
    {

        key = key.ToLower();
        key = key.Replace(' ', '_');
        key = key.Replace('ğ', 'g');
        key = key.Replace('ü', 'u');
        key = key.Replace('ş', 's');
        key = key.Replace('ı', 'i');
        key = key.Replace('ö', 'o');
        key = key.Replace('ç', 'c');
        key = key.Replace(",", "");
        key = key.Replace('&', '_');
        key = key.Replace("(", "");
        key = key.Replace(")", "");
        key = key.Replace('*', 'x');
        key = key.Replace("'", "_");
        key = key.Replace("/", "_");

        return key;
    }
    public string makeMD5(string str)
    {
        str = FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5");

        return str;
    }
}

Yoruma kapali.

Barış Ozcan Facebook Sayfasi
Barış Ozcan Twitter