Başlangıç

Asp.NET C# ile Dosya Boyutu Hesaplama Fonksiyonu.

Yorum bırakın


FileInfo nesnesinden long tipinde gelen dosya boyutunu Gb,mb,kb,b olarak düzenleyebilirsiniz.

public static string BoyutHesapla(long gelenboyut)
{
string sonucboyut = “”;

if (gelenboyut >= 1073741824)
{
sonucboyut += (gelenboyut / 1073741824) + ” GB “;
gelenboyut = gelenboyut % 1073741824;
}

if (gelenboyut >= 1048576)
{
sonucboyut += (gelenboyut / 1048576) + ” MB “;
gelenboyut = gelenboyut % 1048576;
}

if (gelenboyut >= 1024)
{
sonucboyut += (gelenboyut / 1024) + ” KB “;
gelenboyut = gelenboyut % 1024;
}
sonucboyut += gelenboyut + ” B “;

return sonucboyut;
}

Kodu istenen yere ekledikten sonra FileUpload uygulamamda yapmış olduğum kodlarda kırmızı ile yazılı alanlar gibi değiştirirseniz;

if (uploadresim.PostedFile.ContentLength > 1024000)
{
lblresimsonuc.Text = “Seçtiğiniz Dosyanın Boyutu Tanımlanandan Daha Büyük!” + BoyutHesapla(uploadresim.PostedFile.ContentLength);

}
else
{

uploadresim.SaveAs(Server.MapPath(“resimler/”) + uploadresim.FileName);
lblresimsonuc.Text = “Dosya Eklendi. Dosya Boyutu:” + Convert.ToString(uploadresim.PostedFile.ContentLength);
lblresimsonuc.Text = lblresimsonuc.Text + ” Dosya Türü:” + uploadresim.PostedFile.ContentType;
lblresimsonuc.Text = lblresimsonuc.Text + ” Dosya Boyutu:” + BoyutHesapla(uploadresim.PostedFile.ContentLength);

sonucuda uygulamada kullanmış oluruz.

Reklamlar

Asp.NET Fileupload nesnesi için eklenen dosyanın resim dosyası olup olmadığını kontrol edebileceğiniz bir kaç metot.

Yorum bırakın


Asp.NET Fileupload nesnesi için eklenen dosyanın resim dosyası olup olmadığını kontrol edebileceğiniz bir  kaç metot.

I.

public static bool uzantikontrol(HttpPostedFile gelendosya)

{
string[] dosyaturleri = { “image/jpg”, “image/png”, “image/gif”, “image/jpeg”};
if (gelendosya.ContentLength > 0)
{
return dosyaturleri.Contains(gelendosya.ContentType);
}
return false;
}

II.

if (FileUpload1.HasFile)
{ //Resim dosya kontrolü için burayı aktif yapabilirsiniz
//string uzanti = FileUpload1.FileName.Split(‘.’)[(FileUpload1.FileName.Split(‘.’).Length – 1)];
//if (uzanti == “jpg” || uzanti == “png” || uzanti == “bmp” || uzanti == “gif”)
//{
FileUpload1.SaveAs(Server.MapPath(“/dosyalar/” + FileUpload1.FileName));
Label1.Text = “Resim dosyası yüklendi…”;
//}
}
else
{
Label1.Text = “Hata mesajı”;
}

III.
 klasorYolu = “klasorAdi\”;
isim = FileUpload1.FileName;
klasorYolu += isim;
uzanti = FileUpload1.PostedFile.ContentType.ToString();
if (uzanti == “image/pjpeg”)
{
FileUpload1.SaveAs(klasorYolu);
Label1.Text = “Başarılı Yükleme”;
}
else
Label1.Text = “Hatalı Dosya Türü”;
}

Asp.NET C# FileUpload Nesnesi Kullanımı (Dosya Yükleme)

2 Yorum


Fileupload kontrolünün kullanımı, metodları, Basit kodlarla alınabilecek güvenlik önlemlerini yaptığımız bir örnek;

uyeol.aspx Sayfamıza bir adet fileupload nesnesi (Id=uploadresim), bir adet buton (Id=btnresimyukle), bir adet image (Id=Imageyukresim), bir adet label(Id=lblresimsonuc) ve sadece resim yükleme kontrolüyapmak için RegularExpressionValidator (Id=RegularExpressionValidator2)  ekledik. Ben üye ol sayfasında kullandığım için aşağıdaki görseller oradan alındı.

fileupload1 fileupload2RegularExpressionValidator nesnesinin  ControltoValidate özelliğine  fileupload nesnesini bağlamalı ve Validate Expression içinede sadece istenen uzantılar için ^.+\.((jpg)|(gif)|(jpeg)|(png)|(bmp)) yazmak gerekiyor.

uyeol.aspx.cs sayfamızda olayımız şöyle olacak;

protected void btnresimyukle_Click(object sender, EventArgs e)
{
if (uploadresim.HasFile)
{
if (uploadresim.PostedFile.ContentLength > 1024000)
{
lblresimsonuc.Text = “Seçtiğiniz Dosyanın Boyutu Tanımlanandan Daha Büyük!”;
}
else
{

uploadresim.SaveAs(Server.MapPath(“resimler/”) + uploadresim.FileName);//inen dosyanın kaydedileceği yer ve isim
lblresimsonuc.Text = “Dosya Eklendi. Dosya Boyutu:” +Convert.ToString(uploadresim.PostedFile.ContentLength);//dosya yükleme biligileri
lblresimsonuc.Text = lblresimsonuc.Text + ” Dosya Türü:” + uploadresim.PostedFile.ContentType;
Imageyukresim.ImageUrl = “~/resimler/” + uploadresim.FileName;//yüklenen dosyayı image nesnesinde göster
Imageyukresim.Visible = true;
Imageyukresim.Width = 300;
Imageyukresim.Height = 300;
Session[“resimyolu”] = “resimler/” + uploadresim.FileName;//bana dosya yolu lazımdı. onun için yazdım olmasada olur.
}
}
else
{
Response.Write(“Dosya Yükleme Hatası”);
Session[“resimyolu”] = “resimler/herkesinresmi.jpg”;//bana dosya yolu lazımdı. onun için yazdım olmasada olur.
}

Not: Bu sınıfın özellikleri.

Fileupload kontrolünü toolboxdan sürükleyerek formunuza taşıdığınızda kontrolümüzün diğer kontrollerden farklı olarak birkaç özellik,fonksiyon veya alt yordamı var.

.filebytes Gönderilen dosyanın içeriğini byte cinsinden getirir
.filecontent Gönderilen dosyayı stream cinsinden alır
.filename dosyam.uzanti şeklinde dosya adını döndürür
.postedfile HttpPostedFile classını çağırır
.saveas c:\klasor\dosyaadi.uzanti şeklinde verdiğimizde o konuma kaydeder

postedfile sınıfı ve alt yordamları;

.contentlength Dosyanın boyutunu byte olarak döndürür(örnekte dosya boyutunu daha şık göstermenize yardımcı olabilecek bir fonksiyon mevcut)
.contenttype Dosyanın türünü döndürür jpeg için image/pjpeg olabilmektedir örneğin.
.filename Dosyanın kullanıcı bilgisayarındaki yolunu gösterir. e:\klasorum\dosya.jpg gibi
.inputstream Dosyanın içeriğini stream olarak gönderir. Üstteki Fileupload kontrolünün filecontentiyle aynıdır
.saveas Dosyayı belirtilen yere kaydetmeye yarar. Fileupload kontrolünün save as iyle aynıdır

Son olarak web.config dosyasında tüm sayfanın geneli için ayarlama yapmak gerekebilir.

<configuration>
<system.web>
<compilation debug=”true” targetFramework=”4.0″/>
<httpRuntime executionTimeout=”3600″ maxRequestLength=”51200″ />
</system.web>
</configuration>
<!–maxRequestLength özelliği si limiti aşıp aşmadığını kontrol etmek için
executionTimeout si de kötü amaçlı kişileri engellemek için..
Örneğin çok güçlü bağlantıya sahip olan biri siteye
1 gb lık dosya gönderip sunucunun internet trafiğini
yavaşlatmak isteyebilir.
executionTimeout=”3600″ bu 1 saate denk gelir.. Sunucu 1 saatten sonra veri alımını iptal eder
maxRequestLength=”51200″ bu da KB cinsinden veri boyutudur. Bunu aştığında veri alımı iptal eder
Bu ayarlar dosya olsun olmasın tüm istekler için geçerlidir.
O yüzden burayı ayarlarken dikkatli olmalısınız–>

Bana Silverlight Anlat

meslek lisesi ders notları

Eren ÇOLAK

Yazılım Mühendisi Olmak Yolunda İlerliyor...