2010-12-10 13 views
8

में फ़ाइल की सेवा करते समय मैं वेब फॉर्म पृष्ठों में डाउनलोड या प्रस्तुति के लिए विभिन्न दस्तावेजों की सेवा करने के लिए एक हैंडलर लिखने में व्यस्त हूं। दस्तावेज जेनेरिक बाइनरी में विभिन्न छवि प्रारूपों, पीडीएफ से, एमएस ऑफिस दस्तावेजों तक हैं। डाउनलोड की प्रक्रिया की मेरी बुनियादी ड्राफ्ट के रूप में नीचे है:सामग्री प्रकार जब एक सामान्य हैंडलर

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(); 
} 

हालांकि, मैं सभी दस्तावेजों को एक साथ लादू application/octet-stream के रूप में के बारे में कुछ गलतफहमी है, और मुझे, पसंद करेंगे यदि संभव हो, दस्तावेज़ प्रकार प्रति एक अधिक विशिष्ट सामग्री प्रकार का उपयोग करने के लिए । मेरे पास दस्तावेज़ प्रकारों के लिए एक डीबी तालिका है जहां मैं इसे स्टोर कर सकता हूं। क्या मैं सही दिशा में जा रहा हूं, और यदि हां, तो मुझे दस्तावेज़ प्रकारों के लिए सामग्री प्रकारों की उपयुक्त प्रारंभिक सूची कहां मिल सकती है?

उत्तर

17

application/octet-stream फ़ाइल डाउनलोड करने के लिए ठीक है, लेकिन यदि आप ब्राउज़र को फ़ाइल के साथ बातचीत करना चाहते हैं, तो आप सामग्री प्रकार को बदलना चाहेंगे।

उदाहरण के लिए, पीडीएफ फ़ाइल डाउनलोड करने के लिए माइम-प्रकार application/octet-stream है, जबकि application/pdf ब्राउज़र को ब्राउज़र में फ़ाइल खोलने के लिए बताएगा।

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

+0

ग्रेट संसाधन, धन्यवाद। – ProfK

संबंधित मुद्दे