2010-12-10 54 views
8

我正在忙于编写处理程序,以便为Web表单页面中的各种文档提供下载或演示。这些文档包括各种图像格式,PDF,MS Office文档,以及通用二进制文件。我下载过程的基本草案如下:在通用处理程序中提供文件时的内容类型

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适用于文件下载,但如果您希望浏览器与文件进行交互,您可能需要更改内容类型。

例如,用于下载PDF文件的MIME类型是application/octet-stream,而application/pdf会告诉浏览器在浏览器中打开文件。

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

+0

很好的资源,谢谢。 – ProfK 2010-12-10 10:55:45

相关问题