Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 在通用处理程序中为文件提供服务时的内容类型_Asp.net - Fatal编程技术网

Asp.net 在通用处理程序中为文件提供服务时的内容类型

Asp.net 在通用处理程序中为文件提供服务时的内容类型,asp.net,Asp.net,我正忙着编写一个处理程序来处理各种文档,以便在web表单页面中下载或演示。这些文档包括各种图像格式、PDF、MS Office文档和通用二进制文件。我的下载过程的基本草稿如下: public void ProcessRequest(HttpContext context) { var docUrl = context.Request["docUrl"]; if (string.IsNullOrEmpty(docUrl)) { context.Response.En

我正忙着编写一个处理程序来处理各种文档,以便在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();
}
然而,对于将所有文档集中为应用程序/八位字节流,我有一些疑虑,如果可行的话,我更愿意为每个文档类型使用更具体的内容类型。我有一个用于文档类型的DB表,可以将其存储在其中。我走的方向是否正确?如果是,我在哪里可以找到适合文档类型的内容类型起始列表?

应用程序/八位字节流适合文件下载,但如果您希望浏览器与文件交互,可能需要更改内容类型

例如,用于下载PDF文件的mime类型为application/octet stream,而application/PDF将通知浏览器在浏览器中打开该文件