2010-12-10 10 views
8

Web formları sayfalarında indirme veya sunum için çeşitli belgelere hizmet vermek üzere bir işleyici yazıyorum. Belgeler çeşitli görüntü formatlarından PDF'ye, MS Office belgelerine ve genel ikili dosyalara kadar çeşitlilik gösterir. Ben application/octet-stream olarak birlikte tüm belgelerin kefeye hakkında bazı şüpheleri var, Ancakİçerik Bir genel işleyicide bir dosya sunarken yazarken

public void ProcessRequest(HttpContext context) 
{ 
    var docUrl = context.Request["docUrl"]; 
    if (string.IsNullOrEmpty(docUrl)) { 
     context.Response.End(); 
     return; 
    } 
    var docPath = context.Server.MapPath(docUrl); 
    var docInfo = new FileInfo(docPath); 

    context.Response.Clear(); 
    context.Response.AddHeader("Content-Disposition", "attachment; filename=" + Path.GetFileName(docPath)); 
    context.Response.AddHeader("Content-Length", docInfo.Length.ToString()); 
    context.Response.ContentType = "application/octet-stream"; 
    context.Response.WriteFile(docPath); 
    context.Response.End(); 
} 

, ve eğer mümkünse ben belge türü başına daha belirli bir içerik türü kullanmak, tercih edeceğini: indir sürecinin Benim temel taslak aşağıdaki gibidir . Bunu saklayabileceğim belge türleri için bir DB tablom var. Doğru yönde gidiyorum ve eğer öyleyse, belge türleri için uygun bir içerik türleri listesi nereden bulabilirim?

cevap

17

application/octet-stream, dosya indirme işlemi için uygundur, ancak tarayıcının dosya ile etkileşime girmesini istiyorsanız, içerik türünü değiştirmek isteyebilirsiniz. Örneğin, bir PDF dosyasını karşıdan yüklemek için MIME türü application/octet-stream, application/pdf ise tarayıcının dosyayı tarayıcıda açmasını söyleyecektir.

http://en.wikipedia.org/wiki/Internet_media_type

+0

Harika bir kaynak, teşekkürler. – ProfK

İlgili konular