Arşiv

Etiketlenen yazılar request

Dosya boyutu almak için Head isteğinde bulunmak

05 Ekim 2011 Yorum yapılmamış

Uygulamalarımızda internet üzerindeki bir dosyanın boyut bilgisine ihtiyacımız olabilir.

Yapmamız gereken; dosyaya istekte bulunup Length özelliğinden dosya boyutu bilgisini almak.

var DosyaKonum = "http://www.enginpolat.com/wp-content/uploads/2011/07/FPSOrnek.rar";

WebClient wc = new WebClient();
var Dosya = wc.DownloadData(DosyaKonum);

int DosyaBoyut = Dosya.Length;

Bu yöntemin en önemli dezavantajı, dosyanın boyut bilgisini alabilmek için dosyayı gerçekten download etmemiz gerekiyor. Özellikle büyük boyutlu dosyalarda bu yöntem büyük problemlere yol açacaktır.

Aslında yapılan isteğin sonucunun Başlık (Header) bilgisinde dosya boyutu yer alıyor. Eğer Başlık‘tan (Header) boyut bilgisine ulaşabilirsek dosyayı download etmemize gerek kalmaz.

var DosyaKonum = "http://www.enginpolat.com/wp-content/uploads/2011/07/FPSOrnek.rar";

var Request = WebRequest.Create(DosyaKonum);

Request.Method = "HEAD";

var Response = Request.GetResponse();

var DosyaBoyut = Response.Headers[HttpResponseHeader.ContentLength];

Öncelikle WebRequest sınıfının static Create() method’u sayesinde, parametresinde adresi verilmiş dosyaya bir istek oluşturuyoruz.

Request değişkeninin GetResponse() method’undan sonuç bilgisini almadan önce Method özelliğine HEAD değerini atıyoruz.

Böylece istek sonucunda, dosyanın içeriğinin değil sadece başlık bilgisinin bulunmasını sağlıyoruz.

HttpResponseHeader enum’ında yeralan ContentLength değeri ile Response değişkeninin Headers özelliğinden dosyanın boyut bilgisine ulaşabiliyoruz.

ASP.NET ile Mobil Kullanıcıları Mobil Sayfaya Yönlendirmek

27 Şubat 2010 3 yorum

ASP.NET 4.0 ile aşağıdaki kod yardımıyla mobil kullanıcıları algılayabilir ve uygulamanın mobil sayfasına yönlendirebilirsiniz;

private static readonly Regex MobileRegex = new Regex(@"(nokia|sonyericsson|blackberry|IPHONE|samsung|sec-|windows ce|motorola|mot-|up.b|midp-)", RegexOptions.IgnoreCase | RegexOptions.Compiled);

public bool IsMobile
{
	get
	{
		HttpRequest r = HttpContext.Current.Request;

		if (r.Browser.IsMobileDevice)
			return true;

		if (!string.IsNullOrEmpty(r.UserAgent) && MobileRegex.IsMatch(r.UserAgent))
			return true;

		return false;
	}
}

protected void Page_Load(object sender, EventArgs e)
{
	if (IsMobile)
		Response.RedirectPermanent("Mobile.aspx", true);
}